1
0
Fork 0
mirror of https://github.com/TwiN/gatus.git synced 2024-12-14 11:58:04 +00:00
twin-gatus/api/util.go

49 lines
1.1 KiB
Go
Raw Permalink Normal View History

package api
import (
"strconv"
2022-12-06 06:41:09 +00:00
"github.com/TwiN/gatus/v5/storage/store/common"
"github.com/gofiber/fiber/v2"
)
2021-02-25 04:26:13 +00:00
const (
// DefaultPage is the default page to use if none is specified or an invalid value is provided
DefaultPage = 1
// DefaultPageSize is the default page siZE to use if none is specified or an invalid value is provided
DefaultPageSize = 20
// MaximumPageSize is the maximum page size allowed
2021-08-13 01:54:23 +00:00
MaximumPageSize = common.MaximumNumberOfResults
2021-02-25 04:26:13 +00:00
)
func extractPageAndPageSizeFromRequest(c *fiber.Ctx) (page, pageSize int) {
var err error
if pageParameter := c.Query("page"); len(pageParameter) == 0 {
2021-02-25 04:26:13 +00:00
page = DefaultPage
} else {
page, err = strconv.Atoi(pageParameter)
if err != nil {
2021-02-25 04:26:13 +00:00
page = DefaultPage
}
if page < 1 {
page = DefaultPage
}
}
if pageSizeParameter := c.Query("pageSize"); len(pageSizeParameter) == 0 {
2021-02-25 04:26:13 +00:00
pageSize = DefaultPageSize
} else {
pageSize, err = strconv.Atoi(pageSizeParameter)
if err != nil {
2021-02-25 04:26:13 +00:00
pageSize = DefaultPageSize
}
2021-02-25 04:26:13 +00:00
if pageSize > MaximumPageSize {
pageSize = MaximumPageSize
} else if pageSize < 1 {
pageSize = DefaultPageSize
}
}
return
}