package users import ( db "ttime/internal/database" "ttime/internal/types" "github.com/gofiber/fiber/v2" "github.com/gofiber/fiber/v2/log" ) // @Summary PromoteToAdmin // @Description promote chosen user to admin // @Tags User // @Accept json // @Produce plain // @Param NewUser body types.NewUser true "user info" // @Success 200 {json} json "Successfully promoted user" // @Failure 400 {string} string "Bad request" // @Failure 401 {string} string "Unauthorized" // @Failure 500 {string} string "Internal server error" // @Router /promoteToAdmin [post] func PromoteToAdmin(c *fiber.Ctx) error { // Extract the username from the request body var newUser types.NewUser if err := c.BodyParser(&newUser); err != nil { return c.Status(400).SendString("Bad request") } username := newUser.Username log.Info("Promoting user to admin:", username) // Debug print // Promote the user to a site admin in the database if err := db.GetDb(c).PromoteToAdmin(username); err != nil { log.Info("Error promoting user to admin:", err) // Debug print return c.Status(500).SendString(err.Error()) } log.Info("User promoted to admin successfully:", username) // Debug print // Return a success message return c.SendStatus(fiber.StatusOK) }