Current section

Files

Jump to
Raw

lib/reason.ex

defmodule OpentelemetryPhoenix.Reason do
def normalize(reason) when is_struct(reason) do
# %Plug.Conn.WrapperError{}
normalize(reason.reason)
end
def normalize(:badarg) do
[reason: :badarg]
end
def normalize(:badarith) do
[reason: :badarith]
end
def normalize(:system_limit) do
[reason: :system_limit]
end
def normalize(:cond_clause) do
[reason: :cond_clause]
end
def normalize(:undef) do
[reason: :undef]
end
def normalize({:badarity, {fun, args}}) do
{:arity, arity} = Function.info(fun, :arity)
[reason: :badarity, function: "#{inspect(fun)}", arity: arity, args: args]
end
def normalize({:badfun, term}) do
[reason: :badfun, term: term]
end
def normalize({:badstruct, struct, term}) do
[reason: :badstruct, struct: struct, term: term]
end
def normalize({:badmatch, term}) do
[reason: :badmatch, term: term]
end
def normalize({:badmap, term}) do
[reason: :badmap, term: term]
end
def normalize({:badbool, op, term}) do
[reason: :badbool, operator: op, term: term]
end
def normalize({:badkey, key}) do
[reason: :badkey, key: key]
end
def normalize({:badkey, key, map}) do
[reason: :badkey, key: key, map: map]
end
def normalize({:case_clause, term}) do
[reason: :case_clause, term: term]
end
def normalize({:with_clause, term}) do
[reason: :with_clause, term: term]
end
def normalize({:try_clause, term}) do
[reason: :try_clause, term: term]
end
def normalize({:badarg, payload}) do
[reason: :badarg, payload: payload]
end
def normalize(other) do
[reason: :other, unhandled: true, other: "#{inspect(other)}"]
end
def normalize(other, _stacktrace) do
[reason: :other, unhandled: true, other: "#{inspect(other)}"]
end
end