mirror of
https://github.com/ash-project/ash_phoenix.git
synced 2024-09-20 07:12:49 +12:00
improvement: add more exceptions to plug exceptions
This commit is contained in:
parent
76b80d2a77
commit
61a0379841
1 changed files with 11 additions and 4 deletions
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in a new issue