package quarantine 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/quarantine/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) { quarantineController := do.MustInvoke[controller.QuarantineController](injector) jwtService := do.MustInvokeNamed[service.JWTService](injector, constants.JWTService) quarantineRoutes := server.Group("/api/v1/quarantines") { quarantineRoutes.POST("", middlewares.Authenticate(jwtService), quarantineController.Create) quarantineRoutes.GET(":id", middlewares.Authenticate(jwtService), quarantineController.GetById) quarantineRoutes.PUT(":id", middlewares.Authenticate(jwtService), quarantineController.Update) quarantineRoutes.DELETE(":id", middlewares.Authenticate(jwtService), quarantineController.Delete) quarantineRoutes.GET("", middlewares.Authenticate(jwtService), quarantineController.GetAll) quarantineRoutes.POST(":id/lines", middlewares.Authenticate(jwtService), quarantineController.CreateLine) quarantineRoutes.PUT("lines/:id", middlewares.Authenticate(jwtService), quarantineController.UpdateLine) quarantineRoutes.DELETE("lines/:id", middlewares.Authenticate(jwtService), quarantineController.DeleteLine) quarantineRoutes.POST(":id/complete", middlewares.Authenticate(jwtService), quarantineController.OnComplete) } }