1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- package server
- import (
- "github.com/gin-gonic/gin"
- "github.com/go-nunu/nunu-layout-advanced/docs"
- "github.com/go-nunu/nunu-layout-advanced/internal/handler"
- "github.com/go-nunu/nunu-layout-advanced/internal/pkg/middleware"
- "github.com/go-nunu/nunu-layout-advanced/internal/pkg/response"
- "github.com/go-nunu/nunu-layout-advanced/pkg/jwt"
- "github.com/go-nunu/nunu-layout-advanced/pkg/log"
- swaggerfiles "github.com/swaggo/files"
- ginSwagger "github.com/swaggo/gin-swagger"
- )
- func NewServerHTTP(
- logger *log.Logger,
- jwt *jwt.JWT,
- userHandler handler.UserHandler,
- ) *gin.Engine {
- gin.SetMode(gin.ReleaseMode)
- r := gin.Default()
- // swagger doc
- docs.SwaggerInfo.BasePath = "/"
- r.GET("/swagger/*any", ginSwagger.WrapHandler(
- swaggerfiles.Handler,
- //ginSwagger.URL(fmt.Sprintf("http://localhost:%d/swagger/doc.json", conf.GetInt("app.http.port"))),
- ginSwagger.DefaultModelsExpandDepth(-1),
- ))
- r.Use(
- middleware.CORSMiddleware(),
- middleware.ResponseLogMiddleware(logger),
- middleware.RequestLogMiddleware(logger),
- //middleware.SignMiddleware(log),
- )
- // No route group has permission
- noAuthRouter := r.Group("/")
- {
- noAuthRouter.GET("/", func(ctx *gin.Context) {
- logger.WithContext(ctx).Info("hello")
- response.HandleSuccess(ctx, map[string]interface{}{
- ":)": "Thank you for using nunu!",
- })
- })
- noAuthRouter.POST("/register", userHandler.Register)
- noAuthRouter.POST("/login", userHandler.Login)
- }
- // Non-strict permission routing group
- noStrictAuthRouter := r.Group("/").Use(middleware.NoStrictAuth(jwt, logger))
- {
- noStrictAuthRouter.GET("/user", userHandler.GetProfile)
- }
- // Strict permission routing group
- strictAuthRouter := r.Group("/").Use(middleware.StrictAuth(jwt, logger))
- {
- strictAuthRouter.PUT("/user", userHandler.UpdateProfile)
- }
- return r
- }
|