Current section
Files
Jump to
Current section
Files
lib/pagination_helper.ex
defmodule CoreUtils.PaginationHelper do
@moduledoc """
Utilities for query pagination
"""
import Ecto.Query
@doc """
Implements simple pagination
Returns query with limit and offset
## Examples
iex> CoreUtils.PaginationHelper.set_pagination(query, limit, page)
query
"""
def set_pagination(query, lim, page) when lim >= 0 and page > 0 do
page = page - 1
offst = lim * page
query |> limit(^lim) |> offset(^offst)
end
def set_pagination(query, lim, _) when lim >= 0 do
query |> limit(^lim)
end
def set_pagination(query, _, _), do: query
end