Current section
Files
Jump to
Current section
Files
priv/templates/ecto_context/get.ex.eex
@doc """
Fetches a single `<%= inspect(schema) %>` by `id`.
Returns `nil` if not found or `permission(:get, record, scope)` returns false.
## Options
* `:preload` - associations to preload
* `:select` - list of fields to select
* `:query` - 1-arity function for additional query composition
"""
def get(scope, id, opts \\ []) when is_map(scope) do
EctoContext.Validate.validate_opts!(opts, [:preload, :select, :query])
record =
<%= inspect(schema) %>
|> EctoContext.Query.maybe_query(opts[:query])
|> EctoContext.Query.maybe_select(opts[:select])
|> EctoContext.Query.maybe_preload(opts[:preload])
|> <%= inspect(repo) %>.get(id)
if record && permission(:get, record, scope), do: record, else: nil
end