niki/pkg/database/postgres/pagination.go

36 lines
710 B
Go

package postgres
import "time"
type RequestPagination struct {
PageNumber int64 `json:"page_number"`
LastTimeStamp time.Time `json:"last_time_stamp"`
}
type ResponsePagination struct {
PageNumber int64 `json:"page_number"`
PageSize int64 `json:"page_size"`
ShowableNextPagesNum int64 `json:"showable_next_pages_num"`
}
type DBPagination struct {
LastTimeStamp time.Time
PageNumber int64
MaxNextPages int64
PageSize int64
}
func ComputeNextPages(listLen int64, pageSize int64, maxNextPages int64) int64 {
pages := float64(listLen) / float64(pageSize)
for i := maxNextPages - 1; i >= 0; i-- {
if pages > float64(i) {
return i + 1
}
}
return 0
}