customer/internal/utils/pagination.go
Pasha 34a88a3a70
Some checks failed
Lint / Lint (push) Failing after 1m2s
rename go.mod
2024-11-18 21:44:09 +00:00

39 lines
748 B
Go

package utils
import "gitea.pena/PenaSide/customer/internal/models"
func DeterminePagination(page, limit interface{}) *models.Pagination {
determinePage := func() int64 {
if page == nil {
return models.DefaultPageNumber
}
pageNumber, isPageNumberOK := page.(int64)
if !isPageNumberOK || pageNumber < 1 {
return models.DefaultPageNumber
}
return pageNumber
}
determineLimit := func() int64 {
if limit == nil {
return models.DefaultLimit
}
limitNumber, isLimitNumberOK := limit.(int64)
if !isLimitNumberOK || limitNumber > models.DefaultLimit || limitNumber < 1 {
return models.DefaultLimit
}
return limitNumber
}
return &models.Pagination{
Page: determinePage(),
Limit: determineLimit(),
}
}