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

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, []})