Lit.Helpers (Lit v0.1.2) View Source

Provides helper functions for Lit-generated controllers.

Link to this section Summary

Functions

Determines how the query for an index action should be sorted.

Link to this section Types

Specs

params() :: map()

Link to this section Functions

Link to this function

paginate(query, repo, params, settings \\ [page_size: 10])

View Source

Specs

paginate(Ecto.Queryable.t(), Ecto.Repo.t(), params(), Keyword.t()) ::
  %Scrivener.Page{
    entries: term(),
    page_number: term(),
    page_size: term(),
    total_entries: term(),
    total_pages: term()
  }

Paginates a given Ecto.Queryable using Scrivener.

This is a very thin wrapper around Scrivener.paginate/2, so see the Scrivener Ecto documentation for more details.

Parameters

  • query: An Ecto.Queryable to paginate.
  • repo: Your Repo module.
  • params: Parameters from your conn. For example %{"page" => 1}.
  • settings: A list of settings for Scrivener, including :page_size.

Examples

paginate(query, Repo, params, [page_size: 15])
# => %Scrivener.Page{...}

Specs

sort(params()) :: {atom(), atom()} | {:asc, :id}

Determines how the query for an index action should be sorted.

Relies on the "sort_field" and "sort_direction" parameters to be passed. By default, it sorts by :id in ascending order.

Examples

iex> sort(%{"sort_field" => "name", "sort_direction" => "desc"})
{:desc, :name}

iex> sort(%{})
{:asc, :id}

In a query pipeline, use in conjunction with Ecto.Query.order_by/3:

order_by(query, ^sort(params))