mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
improvement: add force
variations of set arguments
This commit is contained in:
parent
313fdb6c18
commit
975d1b3a96
1 changed files with 23 additions and 2 deletions
|
@ -2916,7 +2916,19 @@ defmodule Ash.Changeset do
|
||||||
"""
|
"""
|
||||||
def set_argument(changeset, argument, value) do
|
def set_argument(changeset, argument, value) do
|
||||||
maybe_already_validated_error!(changeset, :set_argument)
|
maybe_already_validated_error!(changeset, :set_argument)
|
||||||
|
do_set_argument(changeset, argument, value)
|
||||||
|
end
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Add an argument to the changeset, which will be provided to the action
|
||||||
|
|
||||||
|
Does not show a warning when used in before/after action hooks
|
||||||
|
"""
|
||||||
|
def force_set_argument(changeset, argument, value) do
|
||||||
|
do_set_argument(changeset, argument, value)
|
||||||
|
end
|
||||||
|
|
||||||
|
defp do_set_argument(changeset, argument, value) do
|
||||||
if changeset.action do
|
if changeset.action do
|
||||||
argument =
|
argument =
|
||||||
Enum.find(
|
Enum.find(
|
||||||
|
@ -2977,13 +2989,22 @@ defmodule Ash.Changeset do
|
||||||
Merge a map of arguments to the arguments list
|
Merge a map of arguments to the arguments list
|
||||||
"""
|
"""
|
||||||
def set_arguments(changeset, map) do
|
def set_arguments(changeset, map) do
|
||||||
maybe_already_validated_error!(changeset)
|
|
||||||
|
|
||||||
Enum.reduce(map, changeset, fn {key, value}, changeset ->
|
Enum.reduce(map, changeset, fn {key, value}, changeset ->
|
||||||
set_argument(changeset, key, value)
|
set_argument(changeset, key, value)
|
||||||
end)
|
end)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@doc """
|
||||||
|
Merge a map of arguments to the arguments list
|
||||||
|
|
||||||
|
Does not show a warning when used in before/after action hooks
|
||||||
|
"""
|
||||||
|
def force_set_arguments(changeset, map) do
|
||||||
|
Enum.reduce(map, changeset, fn {key, value}, changeset ->
|
||||||
|
force_set_argument(changeset, key, value)
|
||||||
|
end)
|
||||||
|
end
|
||||||
|
|
||||||
@doc """
|
@doc """
|
||||||
Force change an attribute if it is not currently being changed
|
Force change an attribute if it is not currently being changed
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue