Current section
Files
Jump to
Current section
Files
lib/rivet/ecto/collection/all.ex
defmodule Rivet.Ecto.Collection.All do
defmacro __using__(opts) do
quote location: :keep, bind_quoted: [opts: opts] do
##########################################################################
@spec all!(keyword() | Ecto.Query.t(), list()) :: [@model.t()]
def all!(clauses \\ [], args \\ [])
def all!(clauses, args) when is_list(clauses) do
from(t in @model, where: ^clauses)
|> Rivet.Ecto.Collection.enrich_query_args(args)
|> @repo.all()
end
def all!(query, args),
do: Rivet.Ecto.Collection.enrich_query_args(query, args) |> @repo.all()
##########################################################################
@spec all(keyword() | Ecto.Query.t(), list()) ::
{:error, ecto_p_result} | {:ok, [@model.t()]}
def all(clauses \\ [], args \\ []) do
{:ok, all!(clauses, args)}
rescue
error ->
{:error, error}
end
end
end
end