39 lines
920 B
Go
39 lines
920 B
Go
package applicationservice
|
|
|
|
import (
|
|
"math"
|
|
|
|
"bitbucket.org/nemt/nemt-portal-api/application/viewmodel"
|
|
)
|
|
|
|
// getTakeSkipPaging return the take and skip from page number and item quantity
|
|
func getTakeSkipPaging(quantity int64, page int64) (take int64, skip int64) {
|
|
if page < 1 {
|
|
page = 1
|
|
}
|
|
|
|
if quantity < 1 {
|
|
quantity = 10
|
|
} else if quantity > 1000 {
|
|
quantity = 1000
|
|
}
|
|
|
|
take = quantity // itens per page
|
|
skip = (page - 1) * quantity
|
|
|
|
return take, skip
|
|
}
|
|
|
|
// buildPaginatedResult returns a paginatedResult instance
|
|
func buildPaginatedResult(list interface{}, skip int64, take int64, totalRecords int64) viewmodel.PaginatedResult {
|
|
return viewmodel.PaginatedResult{
|
|
List: list,
|
|
Pagination: viewmodel.ReturnPagination{
|
|
CurrentPage: (skip / take) + 1,
|
|
RecordsPerPage: take,
|
|
TotalRecords: totalRecords,
|
|
TotalPages: int64(math.Ceil(float64(totalRecords) / float64(take))),
|
|
},
|
|
}
|
|
}
|