server_utils v0.3.0 ServerUtils.Parsers.Pagination.Cursor.Parser

Parses a map with a cursor page request to a ServerUtils.Page.CursorPageRequest struct.

Any missing values will be get the default values. The default values can be configured via the config file or overrided using default_values_opts.

Link to this section Summary

Functions

Parses a page params from a cursor pagination request

Link to this section Types

Link to this type default_values_opts()
default_values_opts() :: [cursor: String.t(), number_of_items: non_neg_integer(), max_number_of_items: non_neg_integer()]

Link to this section Functions

Link to this function parse_cursor_page_request(params_map, opts \\ [])
parse_cursor_page_request(map(), default_values_opts()) :: CursorPageRequest.t()

Parses a page params from a cursor pagination request.

It returns the CursorPageRequest.t with the present values and with the default.

Examples

iex> Elixir.ServerUtils.Parsers.Pagination.Cursor.Parser.parse_cursor_page_request(%{"cursor" => "a_cursor", "number_of_items" => 23})
%ServerUtils.Pagination.Cursor.PageRequest{cursor: "a_cursor", number_of_items: 23}

iex> Elixir.ServerUtils.Parsers.Pagination.Cursor.Parser.parse_cursor_page_request(%{"cursor" => "a_cursor", "number_of_items" => 9000})
%ServerUtils.Pagination.Cursor.PageRequest{cursor: "a_cursor",
number_of_items: 50}

iex> Elixir.ServerUtils.Parsers.Pagination.Cursor.Parser.parse_cursor_page_request(%{"cursor": "", "number_of_items": 0})
%ServerUtils.Pagination.Cursor.PageRequest{cursor: "", number_of_items: 25}

iex> Elixir.ServerUtils.Parsers.Pagination.Cursor.Parser.parse_cursor_page_request(%{"number_of_items": 0}, cursor: "a_default_cursor")
%ServerUtils.Pagination.Cursor.PageRequest{cursor: "a_default_cursor", number_of_items: 25}