53 lines
1.4 KiB
Go
53 lines
1.4 KiB
Go
|
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)))
|
||
|
}
|