package api import ( "github.com/gin-gonic/gin" logger "github.com/rs/zerolog/log" swaggerfiles "github.com/swaggo/files" ginSwagger "github.com/swaggo/gin-swagger" handler_products "online-order/api/handlers/products" "online-order/api/middlewares" middlewares_log "online-order/api/middlewares/log" docs "online-order/docs" "online-order/ent" "online-order/entity" ) func Router(app *gin.Engine, db *ent.Client) { docs.SwaggerInfo.BasePath = "/api/v1" api_v1 := app.Group("api/v1") api_restricted := app.Group("api/v1/in") router_base := &entity.RouterBase{ Database: db, OpenApp: api_v1, } router := &entity.Routers{ RouterBase: *router_base, RestrictedApp: api_restricted, } middlewares_log.SetOutputLogFile() logFile, _ := middlewares_log.OpenFile("storage/logs/request.log") if logFile != nil { api_v1.Use(middlewares_log.RequestLogger(logFile)) } api_v1.Use(gin.Logger()) api_v1.Use(gin.Recovery()) api_v1.Use(middlewares.DomainMiddleware(router)) //middlewareController := middlewares.NewMiddlewareRouters(router) //api_restricted.Use(middlewareController.JwAuthtMiddleware()) handler_products.NewProductRouters(router) logger.Info().Msg("Server ready to go ...") app.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerfiles.Handler, ginSwagger.URL("http://localhost:9000/swagger/doc.json"), ginSwagger.DefaultModelsExpandDepth(-1))) }