http.go 1.4 KB

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