mirror of
https://github.com/ash-project/ash.git
synced 2024-09-20 13:33:20 +12:00
fix: show context on all errors
This commit is contained in:
parent
30309dac1d
commit
6ba7c76aea
6 changed files with 21 additions and 40 deletions
|
@ -546,7 +546,7 @@ defmodule Ash.Error do
|
|||
|> Enum.map_join("\n\n", fn {class, class_errors} ->
|
||||
header = header(class) <> "\n\n"
|
||||
|
||||
header <> Enum.map_join(class_errors, "\n", &"* #{Ash.ErrorKind.message(&1)}")
|
||||
header <> Enum.map_join(class_errors, "\n", &"* #{Exception.message(&1)}")
|
||||
end)
|
||||
end
|
||||
|
||||
|
|
|
@ -25,6 +25,15 @@ defmodule Ash.Error.Exception do
|
|||
def message(%{vars: vars} = exception) do
|
||||
string = Ash.ErrorKind.message(exception)
|
||||
|
||||
string =
|
||||
case Ash.Error.breadcrumb(Map.get(exception, :error_context)) do
|
||||
"" ->
|
||||
string
|
||||
|
||||
context ->
|
||||
context <> "\n" <> string
|
||||
end
|
||||
|
||||
Enum.reduce(List.wrap(vars), string, fn {key, value}, acc ->
|
||||
if String.contains?(acc, "%{#{key}}") do
|
||||
String.replace(acc, "%{#{key}}", to_string(value))
|
||||
|
|
|
@ -8,16 +8,12 @@ defmodule Ash.Error.Forbidden do
|
|||
defimpl Ash.ErrorKind do
|
||||
def id(_), do: Ash.UUID.generate()
|
||||
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?, error_context: error_context}) do
|
||||
messages = Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?}) when not is_nil(errors) do
|
||||
Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
end
|
||||
|
||||
case Ash.Error.breadcrumb(error_context) do
|
||||
"" ->
|
||||
messages
|
||||
|
||||
error_context ->
|
||||
error_context <> "\n" <> messages
|
||||
end
|
||||
def message(%{errors: errors}) do
|
||||
Ash.Error.error_descriptions(errors)
|
||||
end
|
||||
|
||||
def code(_), do: "Forbidden"
|
||||
|
|
|
@ -9,16 +9,8 @@ defmodule Ash.Error.Framework do
|
|||
|
||||
def code(_), do: "framework"
|
||||
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?, error_context: error_context}) do
|
||||
messages = Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
|
||||
case Ash.Error.breadcrumb(error_context) do
|
||||
"" ->
|
||||
messages
|
||||
|
||||
error_context ->
|
||||
error_context <> "\n" <> messages
|
||||
end
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?}) do
|
||||
Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -9,16 +9,8 @@ defmodule Ash.Error.Invalid do
|
|||
|
||||
def code(_), do: "invalid"
|
||||
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?, error_context: error_context}) do
|
||||
messages = Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
|
||||
case Ash.Error.breadcrumb(error_context) do
|
||||
"" ->
|
||||
messages
|
||||
|
||||
error_context ->
|
||||
error_context <> "\n" <> messages
|
||||
end
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?}) do
|
||||
Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
|
@ -17,16 +17,8 @@ defmodule Ash.Error.Unknown do
|
|||
|
||||
def code(_), do: "unknown"
|
||||
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?, error_context: error_context}) do
|
||||
messages = Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
|
||||
case Ash.Error.breadcrumb(error_context) do
|
||||
"" ->
|
||||
messages
|
||||
|
||||
error_context ->
|
||||
error_context <> "\n" <> messages
|
||||
end
|
||||
def message(%{errors: errors, stacktraces?: stacktraces?}) do
|
||||
Ash.Error.error_messages(errors, nil, stacktraces?)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
|
Loading…
Reference in a new issue