Documentation ¶
Overview ¶
Package paging provides utilities to handle pagination.
The Paging struct represents the pagination information and is automatically populated by the New function.
Index ¶
Examples ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func ComputeOffsetAndLimit ¶
ComputeOffsetAndLimit computes the OFFSET (zero based) and LIMIT values to be used with SQL queries.
Example ¶
package main import ( "fmt" "github.com/Vonage/gosrvlib/pkg/paging" ) func main() { var ( currentPage uint = 3 pageSize uint = 5 ) offset, limit := paging.ComputeOffsetAndLimit(currentPage, pageSize) fmt.Println(offset) fmt.Println(limit) }
Output: 10 5
Types ¶
type Paging ¶
type Paging struct { // CurrentPage is the current page number starting from 1. CurrentPage uint `json:"page"` // PageSize is the maximum number of items that can be contained in a page. It is also the LIMIT in SQL queries. PageSize uint `json:"page_size"` // TotalItems is the total number of items to be paginated. TotalItems uint `json:"total_items"` // TotalPages is the total number of pages required to contain all the items. TotalPages uint `json:"total_pages"` // PreviousPage is the previous page. It is equal to 1 if we are on the first page (CurrentPage == 1). PreviousPage uint `json:"previous_page"` // NextPage is the next page. It is equal to TotalPages if we are on the last page (CurrentPage == TotalPages). NextPage uint `json:"next_page"` // Offset is the zero-based number of items before the current page. Offset uint `json:"offset"` }
Paging contains the paging information.
func New ¶
New returns a new paging information instance.
Example ¶
package main import ( "fmt" "github.com/Vonage/gosrvlib/pkg/paging" ) func main() { var ( currentPage uint = 3 pageSize uint = 5 totalItems uint = 17 ) // calculate new paging parameters p := paging.New(currentPage, pageSize, totalItems) fmt.Println(p) }
Output: {3 5 17 4 2 4 10}
Click to show internal directories.
Click to hide internal directories.