Current section

Files

Jump to
wax lib api contacts.ex
Raw

lib/api/contacts.ex

defmodule Whatsapp.Api.Contacts do
@moduledoc """
Módulo para el manejo de contactos de Whatsapp
"""
@parser Application.get_env(:wax, :parser)
@doc """
Valida la lista de teléfonos dada con el provider de Whatsapp
"""
def check_list(_, _, _ \\ true)
def check_list({:error, _} = error, _, _), do: error
@spec check_list(tuple(), [String.t()], boolean) :: map
def check_list(token_info, phone_list, wait) when is_list(phone_list) do
_check_list(token_info, phone_list, wait)
end
@doc """
Valida un teléfono con el provider de Whatsapp
"""
def check(_, _, _ \\ true)
def check({:error, _} = error, _, _), do: error
@spec check(tuple(), String.t(), boolean) :: boolean
def check(token_info, phone, wait) do
_check_list(token_info, [phone], wait)
end
defp _check_list({url, auth_header}, phone_list, wait) do
blocking = (wait && "wait") || "no_wait"
data = %{
blocking: blocking,
contacts: phone_list
}
url
|> Kernel.<>("/contacts")
|> WhatsappApiRequest.rate_limit_request(:post!, data, [auth_header])
|> @parser.parse(:contacts_check)
end
end