2022-11-17 07:37:29 -08:00
|
|
|
package pagination
|
|
|
|
|
2022-11-23 04:06:29 -08:00
|
|
|
// Pagination definition.
|
2022-11-17 07:37:29 -08:00
|
|
|
type Pagination struct {
|
2023-02-09 09:28:39 -08:00
|
|
|
Skip int64
|
|
|
|
Limit int64
|
2022-11-17 07:37:29 -08:00
|
|
|
SortOrder string
|
|
|
|
}
|
|
|
|
|
2023-02-09 09:28:39 -08:00
|
|
|
// Default returns a `*Pagination` with default values.
|
|
|
|
func Default() *Pagination {
|
2023-02-10 10:55:45 -08:00
|
|
|
|
|
|
|
p := &Pagination{
|
|
|
|
Skip: 0,
|
|
|
|
Limit: 50,
|
|
|
|
SortOrder: "DESC",
|
|
|
|
}
|
|
|
|
|
|
|
|
return p
|
2022-11-17 07:37:29 -08:00
|
|
|
}
|
|
|
|
|
2023-02-24 05:47:20 -08:00
|
|
|
func (p *Pagination) SetSkip(skip int64) *Pagination {
|
|
|
|
p.Skip = skip
|
|
|
|
return p
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *Pagination) SetLimit(limit int64) *Pagination {
|
|
|
|
p.Limit = limit
|
|
|
|
return p
|
|
|
|
}
|
|
|
|
|
|
|
|
func (p *Pagination) SetSortOrder(sortOrder string) *Pagination {
|
|
|
|
p.SortOrder = sortOrder
|
|
|
|
return p
|
|
|
|
}
|
|
|
|
|
2022-11-23 04:06:29 -08:00
|
|
|
// GetSortInt mapping to mongodb sort values.
|
2022-11-17 07:37:29 -08:00
|
|
|
func (p *Pagination) GetSortInt() int {
|
|
|
|
if p.SortOrder == "ASC" {
|
|
|
|
return 1
|
|
|
|
}
|
|
|
|
return -1
|
|
|
|
}
|