improvement: add more exceptions to plug exceptions

This commit is contained in:
Zach Daniel 2022-12-05 01:24:09 -05:00
parent 76b80d2a77
commit 61a0379841

View file

@ -2,15 +2,22 @@ errors = [
{Ash.Error.Invalid.InvalidPrimaryKey, 400},
{Ash.Error.Query.InvalidArgument, 400},
{Ash.Error.Query.InvalidFilterValue, 400},
{Ash.Error.Query.NotFound, 404}
{Ash.Error.Query.NotFound, 404},
{Ash.Error.Forbidden.Policy, 403},
{Ash.Error.Forbidden.ApiRequiresActor, 403},
{Ash.Error.Forbidden.MustPassStrictCheck, 403}
]
excluded_exceptions = Application.get_env(:ash_phoenix, :exclude_exceptions_from_plug, [])
# Individual errors can have their own status codes that will propagate to the top-level
# wrapper error
for {module, status_code} <- errors do
defimpl Plug.Exception, for: module do
def status(_exception), do: unquote(status_code)
def actions(_exception), do: []
unless module in excluded_exceptions do
defimpl Plug.Exception, for: module do
def status(_exception), do: unquote(status_code)
def actions(_exception), do: []
end
end
end