mobilizon/lib/graphql/middleware/error_handler.ex
Thomas Citharel 83f2880dd9
Fix some typespecs
Signed-off-by: Thomas Citharel <tcit@tcit.fr>
2022-04-18 14:47:44 +02:00

22 lines
535 B
Elixir

defmodule Mobilizon.GraphQL.Middleware.ErrorHandler do
@moduledoc """
Absinthe Error Handler
"""
alias Mobilizon.GraphQL.Error
@behaviour Absinthe.Middleware
@impl Absinthe.Middleware
def call(resolution, _config) do
errors =
resolution.errors
|> Enum.map(&Error.normalize/1)
|> List.flatten()
|> Enum.map(&to_absinthe_format/1)
%{resolution | errors: errors}
end
defp to_absinthe_format(%Error{} = error), do: Map.from_struct(error)
defp to_absinthe_format(error), do: error
end