extended MW

This commit is contained in:
nquidox 2026-03-06 19:07:14 +03:00
parent 7ccf5eaa87
commit 520f0e6ec7
3 changed files with 37 additions and 18 deletions

View file

@ -3,6 +3,7 @@ package router
import (
"context"
"fmt"
"merch-api/internal/user"
"net"
"net/http"
@ -12,11 +13,14 @@ import (
ginSwagger "github.com/swaggo/gin-swagger"
)
const pkgLogHeader string = "Router |"
type Deps struct {
Host string
Port string
Prefix string
GinMode string
Host string
Port string
Prefix string
GinMode string
UserProvider user.Provider
}
type Router struct {
@ -37,7 +41,7 @@ func NewRouter(deps Deps) *Router {
gin.SetMode(gin.ReleaseMode)
err := engine.SetTrustedProxies([]string{"172.20.0.0/16"})
if err != nil {
log.WithError(err).Error("Router | Set proxies failed")
log.WithError(err).Errorf("%v Set proxies failed", pkgLogHeader)
return nil
}
}
@ -50,7 +54,7 @@ func NewRouter(deps Deps) *Router {
engine.GET("/swagger/*any", ginSwagger.WrapHandler(swaggerFiles.Handler))
engine.Use(authMW())
engine.Use(authMW(deps.UserProvider))
return &Router{
srv: &http.Server{
@ -63,12 +67,12 @@ func NewRouter(deps Deps) *Router {
}
func (r *Router) Run() error {
log.Info("Http server started on: ", r.srv.Addr)
log.Infof("%v Http server started on: %v", pkgLogHeader, r.srv.Addr)
return r.srv.ListenAndServe()
}
func (r *Router) Shutdown(ctx context.Context) error {
log.Info("Http server shutting down")
log.Infof("%v Http server shutting down", pkgLogHeader)
return r.srv.Shutdown(ctx)
}

View file

@ -3,12 +3,25 @@ package router
import (
"github.com/gin-gonic/gin"
log "github.com/sirupsen/logrus"
"merch-api/internal/user"
"merch-api/pkg/responses"
"net/http"
)
func authMW() gin.HandlerFunc {
func authMW(up user.Provider) gin.HandlerFunc {
log.Debug("Auth Middleware enabled")
return func(c *gin.Context) {
c.Set("userUuid", "019caeab-aa81-7f09-a220-d7e675300638") //TODO placeholder for dev purposes
userUuid := "019caeab-aa81-7f09-a220-d7e675300638" //TODO placeholder for dev purposes
log.Warnf("%v using placeholder uuid: %v", pkgLogHeader, userUuid)
userId, err := up.GetUserId(c, userUuid)
if err != nil {
c.JSON(http.StatusUnauthorized, responses.Unauthorized{Error: err.Error()})
log.WithError(err).Errorf("%v error converting user uuid to user id: %v", pkgLogHeader, userUuid)
return
}
c.Set("userId", userId)
c.Next()
}
}