2024-07-25 11:49:50 +00:00
|
|
|
package middleware
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/gofiber/fiber/v2"
|
|
|
|
"go.uber.org/zap"
|
2025-01-01 22:20:08 +00:00
|
|
|
"gitea.pena/PenaSide/tariffs/internal/models"
|
2024-07-25 14:10:01 +00:00
|
|
|
"strconv"
|
2024-07-25 11:49:50 +00:00
|
|
|
)
|
|
|
|
|
|
|
|
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
|
|
|
|
}
|
2024-07-25 14:10:01 +00:00
|
|
|
|
|
|
|
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
|
|
|
|
}
|