39 lines
1 KiB
Go
39 lines
1 KiB
Go
![]() |
package users
|
||
|
|
||
|
import (
|
||
|
db "ttime/internal/database"
|
||
|
"ttime/internal/types"
|
||
|
|
||
|
"github.com/gofiber/fiber/v2"
|
||
|
"github.com/gofiber/fiber/v2/log"
|
||
|
)
|
||
|
|
||
|
// Register is a simple handler that registers a new user
|
||
|
//
|
||
|
// @Summary Register
|
||
|
// @Description Register a new user
|
||
|
// @Tags User
|
||
|
// @Accept json
|
||
|
// @Produce plain
|
||
|
// @Param NewUser body types.NewUser true "User to register"
|
||
|
// @Success 200 {string} string "User added"
|
||
|
// @Failure 400 {string} string "Bad request"
|
||
|
// @Failure 500 {string} string "Internal server error"
|
||
|
// @Router /register [post]
|
||
|
func Register(c *fiber.Ctx) error {
|
||
|
u := new(types.NewUser)
|
||
|
if err := c.BodyParser(u); err != nil {
|
||
|
log.Warn("Error parsing body")
|
||
|
return c.Status(400).SendString(err.Error())
|
||
|
}
|
||
|
|
||
|
log.Info("Adding user:", u.Username)
|
||
|
if err := db.GetDb(c).AddUser(u.Username, u.Password); err != nil {
|
||
|
log.Warn("Error adding user:", err)
|
||
|
return c.Status(500).SendString(err.Error())
|
||
|
}
|
||
|
|
||
|
log.Info("User added:", u.Username)
|
||
|
return c.Status(200).SendString("User added")
|
||
|
}
|