Packages

Google Cloud Document AI API client library.

Current section

Files

Jump to
googly_document_ai lib googly document_ai error.ex
Raw

lib/googly/document_ai/error.ex

# NOTE: This file is auto generated by googly. Do not edit it manually.
defmodule Googly.DocumentAI.Error do
@moduledoc """
A failed API response. `status` is the HTTP status; `code`, `message`,
`reason` and `errors` come from the Google error envelope when present.
"""
@derive {Inspect, only: [:status, :code, :reason, :message]}
defstruct [:status, :code, :message, :reason, :errors, :response]
@type t :: %__MODULE__{
status: pos_integer(),
code: integer() | nil,
message: String.t() | nil,
reason: String.t() | nil,
errors: list() | nil,
response: Req.Response.t()
}
@doc false
def new(%Req.Response{status: status, body: body} = response) do
error = extract(body)
%__MODULE__{
status: status,
code: error["code"],
message: error["message"],
reason: error["status"],
errors: error["errors"],
response: response
}
end
defp extract(%{"error" => error}) when is_map(error), do: error
defp extract(_), do: %{}
end