AccrueAdmin.Queries.Behaviour behaviour (accrue_admin v1.0.0)

Copy Markdown View Source

Shared contract and helpers for admin list queries.

Summary

Types

filter()

@type filter() :: map()

opts()

@type opts() :: keyword()

row()

@type row() :: map()

Callbacks

count_newer_than(opts)

@callback count_newer_than(opts()) :: non_neg_integer()

decode_filter(map)

@callback decode_filter(map()) :: filter()

encode_filter(filter)

@callback encode_filter(filter()) :: map()

list(opts)

@callback list(opts()) :: {[row()], binary() | nil}

Functions

apply_cursor(query, field, arg3)

@spec apply_cursor(
  Ecto.Queryable.t(),
  atom(),
  AccrueAdmin.Queries.Cursor.value() | nil
) ::
  Ecto.Query.t()

compact_filter(filter)

@spec compact_filter(map()) :: map()

count_newer(query, field, arg3)

@spec count_newer(
  Ecto.Queryable.t(),
  atom(),
  AccrueAdmin.Queries.Cursor.value() | nil
) ::
  Ecto.Query.t()

decode_cursor(opts)

@spec decode_cursor(keyword()) :: AccrueAdmin.Queries.Cursor.value() | nil

normalize_limit(opts)

@spec normalize_limit(keyword()) :: pos_integer()

normalize_string(value)

@spec normalize_string(term()) :: binary() | nil

paginate(rows, limit, field)

@spec paginate([map()], pos_integer(), atom()) :: {[map()], binary() | nil}

parse_boolean(value)

@spec parse_boolean(term()) :: boolean() | nil