Packages

Google Cloud Document AI API client library.

Current section

Files

Jump to
googly_document_ai lib googly document_ai response.ex
Raw

lib/googly/document_ai/response.ex

# NOTE: This file is auto generated by googly. Do not edit it manually.
defmodule Googly.DocumentAI.Response do
@moduledoc false
# Turns a Req result into `{:ok, decoded}` or `{:error, ...}`.
alias Googly.DocumentAI.Error
@doc false
def decode({:error, exception}, _module, _call), do: {:error, exception}
def decode({:ok, %Req.Response{status: status} = resp}, _module, _call) when status >= 400 do
{:error, Error.new(resp)}
end
def decode({:ok, %Req.Response{body: body} = resp}, module, call) do
cond do
# `decode: false` (e.g. media downloads) returns the raw body untouched.
Keyword.get(call, :decode, true) == false -> {:ok, body}
# No target struct: hand back the whole response.
is_nil(module) -> {:ok, resp}
true -> {:ok, module.decode(body)}
end
end
end