defmodule Attentive do alias Attentive.{ Config, Operation, Request, Response } @type http_headers_t :: [{ String.t(), String.t() }] @type http_method_t :: :delete | :get | :head | :patch | :post | :put @type http_status_code_t :: pos_integer @type response_t :: { :ok, Response.t() } | { :error, Response.t() | any } @doc """ Send a request to the Attentive API. """ @spec request(Operation.t(), Keyword.t()) :: response_t def request(operation, config) do config = Config.new(config) request = Request.new(operation, config) Request.send(request, config) end end