ApiBrasil.Legacy (APIBrasil v0.0.1)

Copy Markdown View Source

Interface legada da SDK, mantida por compatibilidade com o formato de chamada das primeiras SDKs da plataforma (credentials, body e action em uma única string JSON).

Prefira o cliente ApiBrasil, que cobre toda a plataforma com funções dedicadas, erros tipados, retry e hooks.

legacy = ApiBrasil.Legacy.new()

dados = ~s({
  "action": "sendText",
  "credentials": {
    "DeviceToken": "SEU_DEVICE_TOKEN",
    "BearerToken": "SEU_BEARER_TOKEN"
  },
  "body": {"number": "5511999999999", "text": "Hello World for Elixir"}
})

{:ok, resposta} = ApiBrasil.Legacy.whatsapp(legacy, dados)

Assim como nas versões anteriores, respostas de erro da API voltam decodificadas em {:ok, mapa} em vez de virarem {:error, _} — só falhas de rede, de validação do payload legado e de tempo limite chegam como {:error, %ApiBrasil.Core.Error{}}.

Summary

Types

Resultado de uma chamada legada.

t()

Cliente legado: apenas a base da API.

Functions

Cliente legado.

Chama /dados/{action}.

Como cnpj/3, mas levanta ApiBrasil.Core.Error em caso de falha.

Chama /cpf/dados/{action}.

Como cpf/3, mas levanta ApiBrasil.Core.Error em caso de falha.

Base usada quando o cliente legado é criado sem server.

Cria o cliente legado. Sem argumento, aponta para o gateway padrão.

Executa uma chamada no formato legado: POST {server}/{servico}/{action}.

Chama /sms/{action}.

Como sms/3, mas levanta ApiBrasil.Core.Error em caso de falha.

Chama /whatsapp/{action}.

Types

result()

@type result() :: {:ok, map()} | {:error, ApiBrasil.Core.Error.t()}

Resultado de uma chamada legada.

t()

@type t() :: %ApiBrasil.Legacy{server: String.t()}

Cliente legado: apenas a base da API.

Functions

%ApiBrasil.Legacy{}

(struct)

Cliente legado.

  • :server — base da API. Padrão: https://gateway.apibrasil.io/api/v2/.

cnpj(legacy, dados, opts \\ [])

@spec cnpj(t(), String.t(), keyword()) :: result()

Chama /dados/{action}.

cnpj!(legacy, dados, opts \\ [])

@spec cnpj!(t(), String.t(), keyword()) :: map()

Como cnpj/3, mas levanta ApiBrasil.Core.Error em caso de falha.

cpf(legacy, dados, opts \\ [])

@spec cpf(t(), String.t(), keyword()) :: result()

Chama /cpf/dados/{action}.

cpf!(legacy, dados, opts \\ [])

@spec cpf!(t(), String.t(), keyword()) :: map()

Como cpf/3, mas levanta ApiBrasil.Core.Error em caso de falha.

default_server()

@spec default_server() :: String.t()

Base usada quando o cliente legado é criado sem server.

new(server \\ "https://gateway.apibrasil.io/api/v2/")

@spec new(String.t()) :: t()

Cria o cliente legado. Sem argumento, aponta para o gateway padrão.

ApiBrasil.Legacy.new()
ApiBrasil.Legacy.new("https://gateway.apibrasil.io/api/v2/")

request(legacy, service, dados, opts \\ [])

@spec request(t(), String.t(), String.t(), keyword()) :: result()

Executa uma chamada no formato legado: POST {server}/{servico}/{action}.

dados é uma string JSON com:

  • credentials — objeto com BearerToken e/ou DeviceToken;
  • body — objeto enviado no corpo da requisição;
  • action — opcional; quando presente, vira o último segmento da rota.

JSON inválido, credentials ausente ou body ausente devolvem {:error, %ApiBrasil.Core.Error{kind: :validation}}. Erros da API voltam decodificados em {:ok, mapa}.

ApiBrasil.Legacy.request(legacy, "whatsapp", dados)

request!(legacy, service, dados, opts \\ [])

@spec request!(t(), String.t(), String.t(), keyword()) :: map()

Como request/4, mas levanta ApiBrasil.Core.Error em caso de falha.

sms(legacy, dados, opts \\ [])

@spec sms(t(), String.t(), keyword()) :: result()

Chama /sms/{action}.

sms!(legacy, dados, opts \\ [])

@spec sms!(t(), String.t(), keyword()) :: map()

Como sms/3, mas levanta ApiBrasil.Core.Error em caso de falha.

whatsapp(legacy, dados, opts \\ [])

@spec whatsapp(t(), String.t(), keyword()) :: result()

Chama /whatsapp/{action}.

whatsapp!(legacy, dados, opts \\ [])

@spec whatsapp!(t(), String.t(), keyword()) :: map()

Como whatsapp/3, mas levanta ApiBrasil.Core.Error em caso de falha.