Ash.Resource.Change.Builtins (ash v1.37.2) View Source

Built in changes that are available to all resources

The functions in this module are imported by default in the actions section.

Link to this section Summary

Functions

Calls Ash.Changeset.manage_relationship/4 with the changeset and relationship provided, using the value provided for the named argument

Clears a change off of the changeset before the action runs.

Relates the actor to the data being changed, as the provided relationship.

Sets the attribute to the value provided. If a zero argument function is provided, it is called to determine the value.

Merges the given query context. If an MFA is provided, it will be called with the changeset.

Link to this section Functions

Link to this function

manage_relationship(argument, relationship_name \\ nil, opts)

View Source

Calls Ash.Changeset.manage_relationship/4 with the changeset and relationship provided, using the value provided for the named argument

For example

change manage_relationship(:add_comments, :comments, on_missing: :ignore, on_match: :no_match, on_no_match: {:create, :add_comment_to_post}

Clears a change off of the changeset before the action runs.

Useful if a change is only used in validations but shouldn't ultimately be written to the data layer

Link to this function

relate_actor(relationship)

View Source

Relates the actor to the data being changed, as the provided relationship.

Link to this function

set_attribute(attribute, value)

View Source

Sets the attribute to the value provided. If a zero argument function is provided, it is called to determine the value.

Specs

set_context(map() | mfa()) :: {atom(), Keyword.t()}

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}