View Source Ash.Resource.Change behaviour (ash v2.14.17)
The behaviour for an action-specific resource change.
init/1
is defined automatically by use Ash.Resource.Change
, but can be implemented if you want to validate/transform any
options passed to the module.
The main function is change/3
. It takes the changeset, any options that were provided
when this change was configured on a resource, and the context, which currently only has
the actor.
Summary
Callbacks
Runs on each batch result after it is dispatched to the data layer.
Replaces change/3
for batch actions, allowing to optimize changes for bulk actions.
Runs on each batch before it is dispatched to the data layer.
Types
Callbacks
@callback after_batch( [{Ash.Changeset.t(), Ash.Resource.record()}], Keyword.t(), context() ) :: Enumerable.t( {:ok, Ash.Resource.record()} | {:error, Ash.Error.t()} | Ash.Notifier.Notification.t() )
Runs on each batch result after it is dispatched to the data layer.
@callback batch_change([Ash.Changeset.t()], Keyword.t(), context()) :: Enumerable.t(Ash.Changeset.t() | Ash.Notifier.Notification.t())
Replaces change/3
for batch actions, allowing to optimize changes for bulk actions.
@callback before_batch([Ash.Changeset.t()], Keyword.t(), context()) :: Enumerable.t(Ash.Changeset.t() | Ash.Notifier.Notification.t())
Runs on each batch before it is dispatched to the data layer.
@callback change(Ash.Changeset.t(), Keyword.t(), context()) :: Ash.Changeset.t()