123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- package server
- import (
- "github.com/gin-gonic/gin"
- "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"
- )
- func NewServerHTTP(
- logger *log.Logger,
- jwt *jwt.JWT,
- userHandler handler.UserHandler,
- ) *gin.Engine {
- gin.SetMode(gin.ReleaseMode)
- r := gin.Default()
- 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
- }
|