Documentation ¶
Index ¶
- Variables
- func Header(w http.ResponseWriter, u *url.URL, p *Paginator)
- func Paginate[I any, PI interface{ ... }](p *Paginator) pop.ScopeFunc
- type Item
- type MapPageToken
- type Option
- type Order
- type PageToken
- type PageTokenConstructor
- type PaginationResult
- type Paginator
- type RequestParameters
- type ResponseHeaders
- type StringPageToken
Constants ¶
This section is empty.
Variables ¶
var ErrUnknownOrder = errors.New("unknown order")
Functions ¶
func Header ¶
func Header(w http.ResponseWriter, u *url.URL, p *Paginator)
Header adds the Link header for the page encoded by the paginator. It contains links to the first and next page, if one exists.
func Paginate ¶
Paginate returns a function that paginates a pop.Query. Usage:
q := c.Where("foo = ?", foo).Scope(keysetpagination.Paginate[MyItemType](paginator))
This function works regardless of whether your type implements the Item interface with pointer or value receivers. To understand the type parameters, see this document: https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md#pointer-method-example
Types ¶
type MapPageToken ¶ added in v0.0.519
func (MapPageToken) Encode ¶ added in v0.0.519
func (m MapPageToken) Encode() string
type Option ¶
func Parse ¶
func Parse(q url.Values, p PageTokenConstructor) ([]Option, error)
Parse returns the pagination options from the URL query.
func WithColumn ¶ added in v0.0.519
func WithDefaultSize ¶
func WithDefaultToken ¶
func WithMaxSize ¶
type PageToken ¶ added in v0.0.519
func NewMapPageToken ¶ added in v0.0.519
func NewStringPageToken ¶ added in v0.0.519
type PageTokenConstructor ¶ added in v0.0.519
type PaginationResult ¶ added in v0.0.588
type PaginationResult struct { // NextToken is the next page token. If it's empty, there is no next page. NextToken string // FirstToken is the first page token. FirstToken string }
PaginationResult represents a parsed result of the link HTTP header.
func ParseHeader ¶ added in v0.0.588
func ParseHeader(r *http.Response) *PaginationResult
ParseHeader parses the response header's Link.
type Paginator ¶
type Paginator struct {
// contains filtered or unexported fields
}
func GetPaginator ¶
func Result ¶
Result removes the last item (if applicable) and returns the paginator for the next page.
This function works regardless of whether your type implements the Item interface with pointer or value receivers. To understand the type parameters, see this document: https://go.googlesource.com/proposal/+/refs/heads/master/design/43651-type-parameters.md#pointer-method-example
type RequestParameters ¶ added in v0.0.491
type RequestParameters struct { // Items per Page // // This is the number of items per page to return. // For details on pagination please head over to the [pagination documentation](https://www.ory.sh/docs/ecosystem/api-design#pagination). // // required: false // in: query // default: 250 // min: 1 // max: 1000 PageSize int `json:"page_size"` // Next Page Token // // The next page token. // For details on pagination please head over to the [pagination documentation](https://www.ory.sh/docs/ecosystem/api-design#pagination). // // required: false // in: query PageToken string `json:"page_token"` }
Pagination Request Parameters
The `Link` HTTP header contains multiple links (`first`, `next`) formatted as: `<https://{project-slug}.projects.oryapis.com/admin/sessions?page_size=250&page_token=>; rel="first"`
For details on pagination please head over to the [pagination documentation](https://www.ory.sh/docs/ecosystem/api-design#pagination).
swagger:model keysetPaginationRequestParameters
type ResponseHeaders ¶ added in v0.0.491
type ResponseHeaders struct { // The Link HTTP Header // // The `Link` header contains a comma-delimited list of links to the following pages: // // - first: The first page of results. // - next: The next page of results. // // Pages are omitted if they do not exist. For example, if there is no next page, the `next` link is omitted. Examples: // // </admin/sessions?page_size=250&page_token={last_item_uuid}; rel="first",/admin/sessions?page_size=250&page_token=>; rel="next" // Link string `json:"link"` // The X-Total-Count HTTP Header // // The `X-Total-Count` header contains the total number of items in the collection. TotalCount int `json:"x-total-count"` }
Pagination Response Header
The `Link` HTTP header contains multiple links (`first`, `next`) formatted as: `<https://{project-slug}.projects.oryapis.com/admin/sessions?page_size=250&page_token=>; rel="first"`
For details on pagination please head over to the [pagination documentation](https://www.ory.sh/docs/ecosystem/api-design#pagination).
swagger:model keysetPaginationResponseHeaders
type StringPageToken ¶ added in v0.0.519
type StringPageToken string
func (StringPageToken) Encode ¶ added in v0.0.519
func (s StringPageToken) Encode() string