Parses REST-style sort strings into Flop format and vice versa.
Summary
Functions
Parses a sort string like "-field,other_field" into Flop format.
Returns the list of reserved sorting keys.
Converts a Flop struct's sorting fields back to REST-style sort string.
Functions
Parses a sort string like "-field,other_field" into Flop format.
Examples
iex> FlopRest.Sorting.parse("-starts_at,name")
%{"order_by" => ["starts_at", "name"], "order_directions" => ["desc", "asc"]}
iex> FlopRest.Sorting.parse(nil)
%{}
@spec reserved_keys() :: [String.t()]
Returns the list of reserved sorting keys.
Converts a Flop struct's sorting fields back to REST-style sort string.
Examples
iex> FlopRest.Sorting.to_rest(%Flop{order_by: [:name], order_directions: [:asc]})
%{"sort" => "name"}
iex> FlopRest.Sorting.to_rest(%Flop{order_by: [:name], order_directions: [:desc]})
%{"sort" => "-name"}
iex> FlopRest.Sorting.to_rest(%Flop{order_by: [:name, :age], order_directions: [:asc, :desc]})
%{"sort" => "name,-age"}
iex> FlopRest.Sorting.to_rest(%Flop{})
%{}