gatus/api/util.go

49 lines
1.1 KiB
Go
Raw Normal View History

package api
import (
"strconv"
2022-12-06 07:41:09 +01:00
"github.com/TwiN/gatus/v5/storage/store/common"
"github.com/gofiber/fiber/v2"
)
2021-02-25 05:26:13 +01: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 03:54:23 +02:00
MaximumPageSize = common.MaximumNumberOfResults
2021-02-25 05:26:13 +01:00
)
func extractPageAndPageSizeFromRequest(c *fiber.Ctx) (page, pageSize int) {
var err error
if pageParameter := c.Query("page"); len(pageParameter) == 0 {
2021-02-25 05:26:13 +01:00
page = DefaultPage
} else {
page, err = strconv.Atoi(pageParameter)
if err != nil {
2021-02-25 05:26:13 +01:00
page = DefaultPage
}
if page < 1 {
page = DefaultPage
}
}
if pageSizeParameter := c.Query("pageSize"); len(pageSizeParameter) == 0 {
2021-02-25 05:26:13 +01:00
pageSize = DefaultPageSize
} else {
pageSize, err = strconv.Atoi(pageSizeParameter)
if err != nil {
2021-02-25 05:26:13 +01:00
pageSize = DefaultPageSize
}
2021-02-25 05:26:13 +01:00
if pageSize > MaximumPageSize {
pageSize = MaximumPageSize
} else if pageSize < 1 {
pageSize = DefaultPageSize
}
}
return
}