package v1 import ( "github.com/gin-gonic/gin" "mc-client-updater-server/internal/api/v1/handler" "mc-client-updater-server/internal/api/v1/middleware" "net/http" ) func NewRouter() *gin.Engine { r := gin.New() r.Use() r.Use(middleware.LoggerMiddleware()) r.Use(gin.Recovery()) r.GET("/", func(c *gin.Context) { c.String(http.StatusOK, "Hello Minecraft-Client-Updater service!") }) v1 := r.Group("/api/v1") v1.GET("/status") v1.POST("/login", handler.HandleLogin) /** GROUP /instance/:name Grant required */ inst := v1.Group("/instance/:name", middleware.GrantRequired) { inst.GET("/detail") } /** GROUP /admin Auth required ROLE >= ROLE_admin */ admin := v1.Group("/admin", middleware.AdminRequired) { admin.GET("/instances") admin.GET("/users") admin.GET("/updates") } return r }