package routes import ( "log/slog" "net/http" "orbits-server/internal/server/api/assets" "orbits-server/internal/server/service" "github.com/gin-gonic/gin" "gorm.io/gorm" ) func RegisterKeyRoutes(api *gin.RouterGroup, db *gorm.DB) { keyService := service.NewKeyService(db) // prefix: api // define subroute with key // /api/key key := api.Group("/key") key.POST("/create", func(c *gin.Context) { var body assets.KeyRequestBody if err := c.ShouldBindJSON(&body); err != nil { slog.Error("failed to bind body to json", "error", err) assets.InternalErrorResponse(c) return } keyResponse, err := keyService.Create(body.Name, body.ExpiresAt) if err != nil { slog.Error("failed to create key", "error", err) assets.InternalErrorResponse(c) return } slog.Info("saved key to database") c.JSON(http.StatusCreated, assets.BasicResponse{ Msg: "key has succesfully been created and saved", Data: keyResponse, }) }) key.DELETE("/:key", func(c *gin.Context) { }) }