Packages

SDK oficial Elixir da plataforma APIBrasil: WhatsApp, SMS, consultas de CPF/CNPJ, veiculos, CEP, correios, pagamentos PIX/boleto e mais.

Current section

Files

Jump to
apibrasil lib api_brasil core env.ex
Raw

lib/api_brasil/core/env.ex

defmodule ApiBrasil.Core.Env do
@moduledoc """
Variáveis de ambiente lidas pela SDK.
Valores vazios contam como ausentes — definir `""` é a forma de desligar
o que veio do ambiente.
"""
@bearer_token "APIBRASIL_BEARER_TOKEN"
@device_token "APIBRASIL_DEVICE_TOKEN"
@secret_key "APIBRASIL_SECRET_KEY"
@base_url "APIBRASIL_BASE_URL"
@doc "Bearer Token (JWT do login): `APIBRASIL_BEARER_TOKEN`."
@spec bearer_token() :: String.t()
def bearer_token, do: @bearer_token
@doc "DeviceToken dos serviços device-based: `APIBRASIL_DEVICE_TOKEN`."
@spec device_token() :: String.t()
def device_token, do: @device_token
@doc "SecretKey usada na criação de devices: `APIBRASIL_SECRET_KEY`."
@spec secret_key() :: String.t()
def secret_key, do: @secret_key
@doc "Base da API: `APIBRASIL_BASE_URL`."
@spec base_url() :: String.t()
def base_url, do: @base_url
@doc "Todas as variáveis de ambiente lidas pela SDK."
@spec all() :: [String.t()]
def all, do: [@bearer_token, @device_token, @secret_key, @base_url]
@doc """
Lê uma variável de ambiente, tratando o valor vazio como ausente.
"""
@spec get(String.t()) :: String.t() | nil
def get(name) do
case System.get_env(name) do
nil -> nil
"" -> nil
value -> value
end
end
end