ApiBrasil.Core.DeviceResponse (APIBrasil v0.0.1)

Copy Markdown View Source

Envelope de resposta dos serviços device-based (%{"error" => ..., "message" => ..., "response" => ..., "api_limit" => ...}).

Traz acessores nomeados e implementa Access — o acesso por chave continua funcionando:

{:ok, envelope} = ApiBrasil.Messaging.WhatsApp.send_text(client, body)

ApiBrasil.Core.DeviceResponse.error?(envelope)      # false
ApiBrasil.Core.DeviceResponse.response(envelope)    # payload do provedor
envelope["response"]                                # o mesmo, por chave
envelope.json                                       # envelope completo

Summary

Functions

Limite de requisições do plano.

Janela do limite (ex: "day").

Quanto do limite já foi consumido.

Informa se o gateway sinalizou erro no envelope.

Mensagem devolvida pelo gateway.

Embrulha o mapa JSON no envelope.

Payload do provedor (campo response).

Devolve o envelope completo como mapa.

Types

t()

@type t() :: %ApiBrasil.Core.DeviceResponse{json: map()}

Functions

api_limit(device_response)

@spec api_limit(t()) :: term()

Limite de requisições do plano.

api_limit_for(device_response)

@spec api_limit_for(t()) :: term()

Janela do limite (ex: "day").

api_limit_used(device_response)

@spec api_limit_used(t()) :: term()

Quanto do limite já foi consumido.

error?(device_response)

@spec error?(t()) :: boolean()

Informa se o gateway sinalizou erro no envelope.

message(device_response)

@spec message(t()) :: String.t() | nil

Mensagem devolvida pelo gateway.

new(json)

@spec new(map()) :: t()

Embrulha o mapa JSON no envelope.

response(device_response)

@spec response(t()) :: term()

Payload do provedor (campo response).

to_map(device_response)

@spec to_map(t()) :: map()

Devolve o envelope completo como mapa.