customer/internal/utils/pagination.go

39 lines
748 B
Go
Raw Normal View History

2023-06-22 09:36:43 +00:00
package utils
2024-11-18 07:23:41 +00:00
import "gitea.pena/PenaSide/customer/internal/models"
2023-06-22 09:36:43 +00:00
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(),
}
}