defmodule Ash.Error.Invalid.ImpossiblePath do
@moduledoc "Used when a request expresses a dependency on another request that doesn't exist"
use Ash.Error.Exception
def_ash_error([:impossible_path, :paths], class: :invalid)
defimpl Ash.ErrorKind do
def id(_), do: Ash.UUID.generate()
def code(_), do: "impossible_path"
def message(%{impossible_path: impossible_path, paths: nil}) do
"Impossible path: #{inspect(impossible_path)} required by request."
end
def message(%{impossible_path: impossible_path, paths: paths}) do
"""
Impossible path: #{inspect(impossible_path)} required by request.
Available paths:
#{Enum.map_join(paths, "\n", &inspect/1)}
"""
end
end
end