Rummage.Ecto v2.0.0 Rummage.Ecto.Schema.Sort View Source
Usage:
defmodule MyApp.Rummage.MyModel.Sort do
use Rummage.Schema.Sort,
default_name: "inserted_at",
handlers: [
category_name: %{field: :name, assoc: [inner: :category], ci: true},
name: %{ci: true},
price: %{},
]
# Custom handlers...
def sort(query, "inserted_at", order) do
order = String.to_atom(order)
from p in query,
order_by: [
{^order, p.inserted_at},
{^order, p.id}
]
end
# Because we're overriding sort we need to call super...
def sort(query, name, order) do
super(query, name, order)
end
end