package role import ( "github.com/Caknoooo/go-gin-clean-starter/middlewares" "github.com/Caknoooo/go-gin-clean-starter/modules/auth/service" "github.com/Caknoooo/go-gin-clean-starter/modules/role/controller" "github.com/Caknoooo/go-gin-clean-starter/pkg/constants" "github.com/gin-gonic/gin" "github.com/samber/do" ) func RegisterRoutes(server *gin.Engine, injector *do.Injector) { roleController := do.MustInvoke[controller.RoleController](injector) jwtService := do.MustInvokeNamed[service.JWTService](injector, constants.JWTService) roleRoutes := server.Group("/api/v1/role") { roleRoutes.POST("", middlewares.Authenticate(jwtService), roleController.CreateRole) roleRoutes.GET("", middlewares.Authenticate(jwtService), roleController.GetRoles) roleRoutes.GET("/:id", middlewares.Authenticate(jwtService), roleController.GetRoleByID) roleRoutes.PUT("/:id", middlewares.Authenticate(jwtService), roleController.UpdateRole) roleRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), roleController.DeleteRole) roleRoutes.POST("/:id/permissions", middlewares.Authenticate(jwtService), roleController.AssignPermissionsToRole) roleRoutes.DELETE("/:id/permissions", middlewares.Authenticate(jwtService), roleController.RemovePermissionsFromRole) roleRoutes.POST("/assign-role", middlewares.Authenticate(jwtService), roleController.AssignRoleToUser) roleRoutes.POST("/remove-role", middlewares.Authenticate(jwtService), roleController.RemoveRoleFromUser) roleRoutes.GET("/user/:id", middlewares.Authenticate(jwtService), roleController.GetRolesByUserID) // roleRoutes.POST("", roleController.CreateRole) // roleRoutes.GET("", roleController.GetRoles) // roleRoutes.GET("/:id", roleController.GetRoleByID) // roleRoutes.PUT("/:id", middlewares.Authenticate(jwtService), roleController.Update) // roleRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), roleController.Delete) // userRoutes.PUT("/:id", middlewares.Authenticate(jwtService), userController.Update) // roleRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), roleController.Delete) // roleRoutes.POST("/send-verification-email", roleController.SendVerificationEmail) // roleRoutes.POST("/refresh", middlewares.Authenticate(jwtService), roleController.Refresh) } }