Documentation
¶
Overview ¶
options provides a lightweight options object for parsing query parameters sent in a JSONAPI friendly way via querystring parameters
Index ¶
- type IPaginationStrategy
- type OffsetStrategy
- type Options
- func (o Options) ContainsFilterField(field string) bool
- func (o Options) ContainsSortField(field string) bool
- func (o Options) First() string
- func (o Options) Last(total int) string
- func (o Options) Next() string
- func (o Options) PaginationStrategy() IPaginationStrategy
- func (o Options) Prev() string
- func (o *Options) SetPaginationStrategy(ps IPaginationStrategy)
- func (o Options) String() string
- type PageSizeStrategy
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type IPaginationStrategy ¶
type IPaginationStrategy interface { Current(map[string]int) string First(map[string]int) string Last(map[string]int, int) string Next(map[string]int) string Prev(map[string]int) string }
IPaginationStrategy is an interface for providing First, Last, Next and Prev links based on the pagination mechanism that is being implemented
type OffsetStrategy ¶
type OffsetStrategy struct{}
OffsetStrategy is a pagination strategy for page[offset] and page[limit] parameters
func (OffsetStrategy) Current ¶ added in v1.6.0
func (os OffsetStrategy) Current(c map[string]int) string
Current returns a link to the current page
func (OffsetStrategy) First ¶
func (os OffsetStrategy) First(c map[string]int) string
First returns a link to the first page
func (OffsetStrategy) Last ¶
func (os OffsetStrategy) Last(c map[string]int, total int) string
Last returns a link to the last page
type Options ¶
type Options struct { Fields []string `json:"fields,omitempty"` Filter map[string][]string `json:"filter,omitempty"` Page map[string]int `json:"page"` Sort []string `json:"sort,omitempty"` // contains filtered or unexported fields }
Options contain filtering, pagination and sorting instructions provided via the querystring in bracketed object notation
func FromQuerystring ¶
FromQuerystring parses an Options object from the provided querystring
func (Options) ContainsFilterField ¶ added in v1.4.0
ContainsFilterField confirms whether or not the provided filter parameters include the requested field
func (Options) ContainsSortField ¶ added in v1.4.0
ContainsSortField confirms whether or not the provided sort options contains the requested field
func (Options) PaginationStrategy ¶
func (o Options) PaginationStrategy() IPaginationStrategy
PaginationStrategy can be used to retrieve the current IPaginationStrategy that the Options struct will use for generating Prev, Next, First and Last querystring values
func (*Options) SetPaginationStrategy ¶
func (o *Options) SetPaginationStrategy(ps IPaginationStrategy)
SetPaginationStrategy can be used to specify custom pagination increments for Next, Prev, First and Last
type PageSizeStrategy ¶
type PageSizeStrategy struct{}
PageSizeStrategy is a pagination strategy for page[size] and page[page] parameters
func (PageSizeStrategy) Current ¶ added in v1.6.0
func (ps PageSizeStrategy) Current(c map[string]int) string
Current returns a link to the current page
func (PageSizeStrategy) First ¶
func (ps PageSizeStrategy) First(c map[string]int) string
First returns a link to the first page
func (PageSizeStrategy) Last ¶
func (os PageSizeStrategy) Last(c map[string]int, total int) string
Last returns a link to the last page