package routes import ( http2 "enaklo-pos-be/internal/handlers/http" "enaklo-pos-be/internal/handlers/http/balance" "enaklo-pos-be/internal/handlers/http/license" "enaklo-pos-be/internal/handlers/http/oss" "enaklo-pos-be/internal/handlers/http/partner" "enaklo-pos-be/internal/handlers/http/product" site "enaklo-pos-be/internal/handlers/http/sites" "enaklo-pos-be/internal/handlers/http/transaction" "enaklo-pos-be/internal/handlers/http/user" "net/http" swaggerFiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" "enaklo-pos-be/internal/middlewares" "github.com/gin-gonic/gin" "enaklo-pos-be/internal/app" "enaklo-pos-be/internal/handlers/http/auth" "enaklo-pos-be/internal/repository" "enaklo-pos-be/internal/services" ) func RegisterPublicRoutes(app *app.Server, serviceManager *services.ServiceManagerImpl, repoManager *repository.RepoManagerImpl) { route := app.Group("/") route.GET("/", func(c *gin.Context) { c.JSON(http.StatusOK, "HEALTHY") }) route.GET("/docs/*any", ginSwagger.WrapHandler(swaggerFiles.Handler)) } type HTTPHandlerRoutes interface { Route(group *gin.RouterGroup, jwt gin.HandlerFunc) } func RegisterPrivateRoutes(app *app.Server, serviceManager *services.ServiceManagerImpl, repoManager *repository.RepoManagerImpl) { approute := app.Group("/api/v1") authMiddleware := middlewares.AuthorizationMiddleware(repoManager.Crypto) serverRoutes := []HTTPHandlerRoutes{ auth.NewAuthHandler(serviceManager.AuthSvc), user.NewHandler(serviceManager.UserSvc), product.NewHandler(serviceManager.ProductSvc), oss.NewOssHandler(serviceManager.OSSSvc), partner.NewHandler(serviceManager.PartnerSvc), site.NewHandler(serviceManager.SiteSvc), license.NewHandler(serviceManager.LicenseSvc), transaction.New(serviceManager.Transaction), balance.NewHandler(serviceManager.Balance), } for _, handler := range serverRoutes { handler.Route(approute, authMiddleware) } } func RegisterPrivateRoutesV2(app *app.Server, serviceManager *services.ServiceManagerImpl, repoManager *repository.RepoManagerImpl) { approute := app.Group("/api/v2") authMiddleware := middlewares.AuthorizationMiddleware(repoManager.Crypto) serverRoutes := []HTTPHandlerRoutes{ http2.NewOrderHandler(serviceManager.OrderV2Svc), http2.NewMemberRegistrationHandler(serviceManager.MemberRegistrationSvc), http2.NewCustomerHandler(serviceManager.CustomerV2Svc), http2.NewInProgressOrderHandler(serviceManager.InProgressSvc), http2.NewCashierSession(serviceManager.CashierSvc), http2.NewCategoryHandler(serviceManager.CategorySvc), } for _, handler := range serverRoutes { handler.Route(approute, authMiddleware) } }