Jade/chatCommands.go

47 lines
973 B
Go

package main
import (
"net/http"
"github.com/gofiber/fiber/v2"
"go.mongodb.org/mongo-driver/bson"
)
type Command struct {
Name string
Trigger string
Handler func(c *fiber.Ctx) string
}
var Commands []Command
func init() {
Commands = []Command{
{
Name: "Clear",
Trigger: "clear",
Handler: ClearCommandHandler,
},
}
}
func ClearCommandHandler(c *fiber.Ctx) string {
collection := mongoClient.Database("chat").Collection("messages")
_, err := collection.DeleteMany(c.Context(), bson.D{})
if err != nil {
c.Status(http.StatusInternalServerError).JSON(fiber.Map{
"error": "Failed to clear messages",
})
}
return "<hx hx-get='/loadChat' hx-trigger='load' hx-swap='outerHTML' hx-target='#chat-container'></hx>"
}
func DetectCommand(message string, c *fiber.Ctx) (string, bool) {
for _, command := range Commands {
if command.Trigger == message {
return command.Handler(c), true
}
}
return "", false // No command detected
}