http.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. package server
  2. import (
  3. "github.com/gin-gonic/gin"
  4. "github.com/go-nunu/nunu-layout-advanced/internal/handler"
  5. "github.com/go-nunu/nunu-layout-advanced/internal/middleware"
  6. "github.com/go-nunu/nunu-layout-advanced/pkg/helper/resp"
  7. "github.com/go-nunu/nunu-layout-advanced/pkg/log"
  8. )
  9. func NewServerHTTP(
  10. logger *log.Logger,
  11. jwt *middleware.JWT,
  12. userHandler handler.UserHandler,
  13. ) *gin.Engine {
  14. gin.SetMode(gin.ReleaseMode)
  15. r := gin.Default()
  16. r.Use(
  17. middleware.CORSMiddleware(),
  18. middleware.ResponseLogMiddleware(logger),
  19. middleware.RequestLogMiddleware(logger),
  20. //middleware.SignMiddleware(log),
  21. )
  22. // No route group has permission
  23. noAuthRouter := r.Group("/")
  24. {
  25. noAuthRouter.GET("/", func(ctx *gin.Context) {
  26. logger.WithContext(ctx).Info("hello")
  27. resp.HandleSuccess(ctx, map[string]interface{}{
  28. "say": "Hi Nunu!",
  29. })
  30. })
  31. noAuthRouter.POST("/register", userHandler.Register)
  32. noAuthRouter.POST("/login", userHandler.Login)
  33. }
  34. // Non-strict permission routing group
  35. noStrictAuthRouter := r.Group("/").Use(middleware.NoStrictAuth(jwt, logger))
  36. {
  37. noStrictAuthRouter.GET("/user", userHandler.GetProfile)
  38. }
  39. // Strict permission routing group
  40. strictAuthRouter := r.Group("/").Use(middleware.StrictAuth(jwt, logger))
  41. {
  42. strictAuthRouter.PUT("/user", userHandler.UpdateProfile)
  43. }
  44. return r
  45. }