online-order/api/router.go

53 lines
1.4 KiB
Go
Raw Normal View History

2023-10-31 16:31:06 +00:00
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)))
}