tariffs/internal/controller/middleware/middleware.go
2025-01-02 01:20:08 +03:00

45 lines
1017 B
Go

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
}