2022-01-25 05:27:40 +00:00
|
|
|
package utils
|
|
|
|
|
|
|
|
import (
|
|
|
|
"github.com/authorizerdev/authorizer/server/constants"
|
|
|
|
"github.com/authorizerdev/authorizer/server/graph/model"
|
|
|
|
)
|
|
|
|
|
|
|
|
// GetPagination helps getting pagination data from paginated input
|
|
|
|
// also returns default limit and offset if pagination data is not present
|
2023-07-31 11:12:11 +00:00
|
|
|
func GetPagination(paginatedInput *model.PaginatedInput) *model.Pagination {
|
2022-01-25 05:27:40 +00:00
|
|
|
limit := int64(constants.DefaultLimit)
|
|
|
|
page := int64(1)
|
|
|
|
|
|
|
|
if paginatedInput != nil && paginatedInput.Pagination != nil {
|
|
|
|
if paginatedInput.Pagination.Limit != nil {
|
|
|
|
limit = *paginatedInput.Pagination.Limit
|
|
|
|
}
|
|
|
|
|
|
|
|
if paginatedInput.Pagination.Page != nil {
|
|
|
|
page = *paginatedInput.Pagination.Page
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2023-07-31 11:12:11 +00:00
|
|
|
return &model.Pagination{
|
2022-01-25 05:27:40 +00:00
|
|
|
Limit: limit,
|
|
|
|
Offset: (page - 1) * limit,
|
|
|
|
Page: page,
|
|
|
|
}
|
|
|
|
}
|