View Source Ash.Resource.Preparation.Builtins (ash v2.0.0-rc.13)
Builtin query preparations
Link to this section Summary
Functions
Passes the given keyword list to Ash.Query.build/2
with the query being prepared.
Merges the given query context.
Link to this section Functions
@spec build(Keyword.t()) :: Ash.Resource.Preparation.ref()
Passes the given keyword list to Ash.Query.build/2
with the query being prepared.
This allows declaring simple query modifications in-line.
options
Options
:filter
- A filter keyword, expression or %Ash.Filter{}:sort
- A sort list or keyword:limit
- A limit to apply:offset
- An offset to apply:load
- A load statement to add to the query:aggregate
- A custom aggregate to add to the query. Can be{name, type, relationship}
or{name, type, relationship, build_opts}
:calculate
- A custom calculation to add to the query. Can be{name, module_and_opts}
or{name, module_and_opts, context}
:distinct
- A distinct clause to add to the query:context
- A map to merge into the query context
examples
Examples
prepare build(sort: [song_rank: :desc], limit: 10)
prepare build(load: [:friends])
@spec set_context(context :: map() | mfa()) :: Ash.Resource.Preparation.ref()
Merges the given query context.
If an MFA is provided, it will be called with the changeset.
The MFA should return {:ok, context_to_be_merged}
or {:error, term}
examples
Examples
change set_context(%{something_used_internally: true})
change set_context({MyApp.Context, :set_context, []})