Current section
Files
Jump to
Current section
Files
lib/whatsapp_api_request.ex
defmodule WhatsappApiRequest do
use HTTPoison.Base
@default_headers [{"Content-Type", "application/json"}]
def process_request_options(options) do
[
hackney: [:insecure],
connect_timeout: Application.get_env(:wax, :connect_timeout) || 10_000,
recv_timeout: Application.get_env(:wax, :recv_timeout) || 10_000,
timeout: Application.get_env(:wax, :timeout) || 10_000
] ++ options
end
@spec rate_limit_request(url(), method(), body(), headers()) ::
HTTPoison.Response.t() | {:error, :max_attempts_exceeded}
def rate_limit_request(url, method_get, headers) when method_get in [:get, :get!],
do:
WhatsappApiBaseRequest.check_rate_and_prepare_request(
__MODULE__,
url,
method_get,
[url, headers],
0
)
def rate_limit_request(url, method, body, headers),
do:
WhatsappApiBaseRequest.check_rate_and_prepare_request(
__MODULE__,
url,
method,
[url, body, headers],
0
)
def process_request_body(body), do: Jason.encode_to_iodata!(body)
def process_request_headers(headers \\ []), do: headers ++ @default_headers
def process_response_body(body), do: Jason.decode!(body)
end