package handlers import ( "ttime/internal/database" "ttime/internal/types" "github.com/gofiber/fiber/v2" ) // The actual interface that we will use type GlobalState interface { Register(c *fiber.Ctx) error } // "Constructor" func NewGlobalState(db database.Database) GlobalState { return &GState{Db: db} } // The global state, which implements all the handlers type GState struct { Db database.Database } func (gs *GState) Register(c *fiber.Ctx) error { u := new(types.User) if err := c.BodyParser(u); err != nil { return c.Status(400).SendString(err.Error()) } if err := gs.Db.AddUser(u.Username, u.Password); err != nil { return c.Status(500).SendString(err.Error()) } return c.Status(200).SendString("User added") }