LiveFilter.Sort (LiveFilter v0.1.0)

View Source

Represents a sort configuration for queries.

A sort consists of:

  • field: The field to sort by (atom or string)
  • direction: :asc or :desc

Multiple sorts can be applied in order (primary, secondary, etc.)

Summary

Functions

Creates a new sort configuration.

Returns the opposite direction.

Toggles the direction of a sort.

Types

direction()

@type direction() :: :asc | :desc

t()

@type t() :: %LiveFilter.Sort{direction: direction(), field: atom() | String.t()}

Functions

new(field, direction \\ :asc)

Creates a new sort configuration.

Examples

iex> LiveFilter.Sort.new(:due_date, :desc)
%LiveFilter.Sort{field: :due_date, direction: :desc}

iex> LiveFilter.Sort.new("created_at")
%LiveFilter.Sort{field: "created_at", direction: :asc}

opposite_direction(atom)

Returns the opposite direction.

toggle_direction(sort)

Toggles the direction of a sort.

Examples

iex> sort = LiveFilter.Sort.new(:title, :asc)
iex> LiveFilter.Sort.toggle_direction(sort)
%LiveFilter.Sort{field: :title, direction: :desc}