View Source Ash.Reactor.AshStep (ash v3.4.3)
A reactor step which runs a step-module or an anonymous function, and enqueues any returned notifications before returning.
The following return values are supported: {:ok, result}
, {:ok, result, notifications}
,
{:ok, result, notifications, new_steps}
Example:
ash_step :maybe_update_post do
run fn %{post: post, new_amount_of_likes: new_amount_of_likes}, ctx ->
opts = Ash.Context.to_opts(ctx, return_notifications?: true)
if post.amount_of_likes != new_amount_of_likes do
Post.update(post, %{amount_of_likes: new_amount_of_likes}, opts)
else
{:ok, post}
end
end
Options
run
- a one or two arity function or MFA which will be called as the run function of the step.compensate
- a one to three arity function or MFA which will be called as the compensate function of the step. Optional.undo
- a one to three arity function or MFA which will be called as the undo function of this step. Optional.