// internal/router/user.go package router import ( "github.com/gin-gonic/gin" "github.com/go-nunu/nunu-layout-advanced/internal/middleware" ) func InitUserRouter( r *gin.RouterGroup, deps RouterDeps, ) { { // No route group has permission noAuthRouter := r.Group("/") { noAuthRouter.POST("/register", deps.UserHandler.Register) noAuthRouter.POST("/login", deps.UserHandler.Login) } // Non-strict permission routing group noStrictAuthRouter := r.Group("/").Use(middleware.NoStrictAuth(deps.JWT, deps.Logger)) { noStrictAuthRouter.GET("/user", deps.UserHandler.GetProfile) } // Strict permission routing group strictAuthRouter := r.Group("/").Use(middleware.StrictAuth(deps.JWT, deps.Logger)) { strictAuthRouter.PUT("/user", deps.UserHandler.UpdateProfile) } } }