package client 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/client/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) { clientController := do.MustInvoke[controller.ClientController](injector) jwtService := do.MustInvokeNamed[service.JWTService](injector, constants.JWTService) clientRoutes := server.Group("/api/v1/clients") { clientRoutes.POST("", middlewares.Authenticate(jwtService), clientController.Create) clientRoutes.GET("/:id", middlewares.Authenticate(jwtService), clientController.GetById) clientRoutes.PUT("/:id", middlewares.Authenticate(jwtService), clientController.Update) clientRoutes.DELETE("/:id", middlewares.Authenticate(jwtService), clientController.Delete) clientRoutes.GET("", middlewares.Authenticate(jwtService), clientController.GetAll) clientRoutes.POST("/:id/assign-menus", middlewares.Authenticate(jwtService), clientController.AssignMenusToClient) clientRoutes.POST("/:id/remove-menus", middlewares.Authenticate(jwtService), clientController.RemoveMenusFromClient) } }