amocrm/internal/controllers/middleware.go

38 lines
727 B
Go
Raw Normal View History

2024-04-08 15:24:50 +00:00
package controllers
import (
"github.com/gofiber/fiber/v2"
2025-02-27 13:30:52 +00:00
"gitea.pena/SQuiz/common/model"
2024-04-08 15:24:50 +00:00
"strconv"
)
2024-04-17 12:21:06 +00:00
func extractParams(ctx *fiber.Ctx) (*model.PaginationReq, error) {
2024-04-08 15:24:50 +00:00
pageStr := ctx.Query("page")
sizeStr := ctx.Query("size")
2024-04-23 12:22:12 +00:00
page := 1
size := 25
2024-04-08 15:24:50 +00:00
2024-04-23 12:22:12 +00:00
if pageStr != "" {
pageNew, err := strconv.Atoi(pageStr)
if err != nil {
return nil, ctx.Status(fiber.StatusBadRequest).SendString("Invalid page parameter")
}
page = pageNew
2024-04-08 15:24:50 +00:00
}
2024-04-23 12:22:12 +00:00
if sizeStr != "" {
sizeNew, err := strconv.Atoi(sizeStr)
if err != nil {
return nil, ctx.Status(fiber.StatusBadRequest).SendString("Invalid size parameter")
}
size = sizeNew
2024-04-08 15:24:50 +00:00
}
2024-04-17 12:21:06 +00:00
req := model.PaginationReq{
2024-04-08 15:24:50 +00:00
Page: page,
2024-04-18 11:13:03 +00:00
Size: int32(size),
2024-04-08 15:24:50 +00:00
}
return &req, nil
}