View Source Ash.Resource.Preparation behaviour (ash v2.19.3)
The behaviour for an action-specific query preparation.
init/1
is defined automatically by use Ash.Resource.Preparation
, but can be implemented if you want to validate/transform any
options passed to the module.
The main function is prepare/3
. It takes the query, any options that were provided
when this preparation was configured on a resource, and the context, which currently only has
the actor.
To access any query arguments from within a preparation, make sure you are using Ash.Query.get_argument/2
as the argument keys may be strings or atoms.
Summary
Types
@type context() :: %{ optional(:actor) => Ash.Resource.record(), optional(any()) => any() }
@type t() :: %Ash.Resource.Preparation{preparation: term()}
Callbacks
@callback prepare(query :: Ash.Query.t(), opts :: Keyword.t(), context :: context()) :: Ash.Query.t()