Current section
Files
Jump to
Current section
Files
lib/paddle/error.ex
defmodule Paddle.Error do
defexception [:type, :code, :message, :errors, :request_id, :status_code, :raw]
@impl Exception
def message(%{message: message}), do: message
def from_response(%Req.Response{status: status, body: body} = resp) do
body = if is_map(body), do: body, else: %{}
error_body = Map.get(body, "error", %{})
%__MODULE__{
status_code: status,
request_id: resp |> Req.Response.get_header("x-request-id") |> List.first(),
type: error_body["type"],
code: error_body["code"],
message: Map.get(error_body, "detail", "Unknown Paddle Error"),
errors: Map.get(error_body, "errors", []),
raw: body
}
end
end