EpochtalkServerWeb.Helpers.Pagination (epochtalk_server v0.1.0)
Helper for paginating database queries
Link to this section Summary
Functions
Takes in a query, page and per_page option, returns paginated data and relevant pagination data for frontend (ex. page, limit, next, prev)
Link to this section Functions
Link to this function
page_simple(query, page, list)
@spec page_simple(query :: Ecto.Queryable.t(), page :: integer() | String.t() | nil, [ {:per_page, integer() | String.t() | nil} ]) :: {:ok, list :: [term()] | [], pagination_data :: map()}
Takes in a query, page and per_page option, returns paginated data and relevant pagination data for frontend (ex. page, limit, next, prev)
example
Example
iex> import Ecto.Query
iex> alias EpochtalkServer.Models.{ Mention, Invitation }
iex> alias EpochtalkServerWeb.Helpers.Pagination
iex> Mention
...> |> order_by(asc: :id)
...> |> Pagination.page_simple(1, per_page: 25)
{:ok, [], %{limit: 25, next: false, page: 1, prev: false}}
iex> Invitation
...> |> order_by(desc: :email)
...> |> Pagination.page_simple(1, per_page: 10)
{:ok, [], %{limit: 10, next: false, page: 1, prev: false}}