ash_phoenix/lib/ash_phoenix.ex
2022-07-07 22:22:30 -04:00

32 lines
902 B
Elixir

defmodule AshPhoenix do
@moduledoc """
General helpers for AshPhoenix.
These will be deprecated at some point, once the work on `AshPhoenix.Form` is complete.
"""
require Logger
def hide_errors(%Ash.Changeset{} = changeset) do
Ash.Changeset.put_context(changeset, :private, %{ash_phoenix: %{hide_errors: true}})
end
def hide_errors(%Ash.Query{} = query) do
Ash.Query.put_context(query, :private, %{ash_phoenix: %{hide_errors: true}})
end
def hiding_errors?(%Ash.Changeset{} = changeset) do
changeset.context[:private][:ash_phoenix][:hide_errors] == true
end
def hiding_errors?(%Ash.Query{} = query) do
query.context[:private][:ash_phoenix][:hide_errors] == true
end
@doc false
def replace_vars(message, vars) do
Enum.reduce(vars || [], message, fn {key, value}, acc ->
String.replace(acc, "%{#{key}}", to_string(value))
end)
end
end