package middleware import ( "github.com/gofiber/fiber/v2" "go.uber.org/zap" "gitea.pena/PenaSide/tariffs/internal/models" "strconv" ) type MiddleWare struct { logger *zap.Logger } func NewMiddleware(logger *zap.Logger) *MiddleWare { return &MiddleWare{ logger: logger, } } func (mw *MiddleWare) ExtractUserID(ctx *fiber.Ctx) (string, bool) { id, ok := ctx.Context().UserValue(models.AuthJWTDecodedUserIDKey).(string) return id, ok } func (mw *MiddleWare) ExtractToken(ctx *fiber.Ctx) (string, bool) { token, ok := ctx.Context().UserValue(models.AuthJWTDecodedAccessTokenKey).(string) return token, ok } func (mw *MiddleWare) GetPaginationParameters(ctx *fiber.Ctx) (int64, int64) { page := int64(1) limit := int64(25) if p := ctx.Query("page"); p != "" { if parPage, err := strconv.ParseInt(p, 10, 64); err == nil { page = parPage } } if l := ctx.Query("limit"); l != "" { if parLimit, err := strconv.ParseInt(l, 10, 64); err == nil { limit = parLimit } } return page, limit }