Search documentation of ash

# View Source Ash.Resource.Preparation behaviour (ash v3.4.30)

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

ref()
t()

## Callbacks

init(opts)
prepare(query, opts, context)

# Types

Link to this type

# ref()

View Source

    @type ref() :: {module(), Keyword.t()} | module()

Link to this type

# t()

View Source

    @type t() :: %Ash.Resource.Preparation{preparation: term()}

# Callbacks

Link to this callback

# init(opts)

View Source

    @callback init(opts :: Keyword.t()) :: {:ok, Keyword.t()} | {:error, term()}

Link to this callback

# prepare(query, opts, context)

View Source

    @callback prepare(
      query :: Ash.Query.t(),
      opts :: Keyword.t(),
      context :: Ash.Resource.Preparation.Context.t()
    ) :: Ash.Query.t()