defmodule Odoo.Api do @moduledoc """ Behaviour for Odoo API http clients. """ @type response :: Odoo.HttpClientResponse.t() @type url :: String.t() @type payload :: map() @type message :: String.t() @type cookie :: String.t() @callback callp(url, payload) :: {:ok, response} | {:error, message()} @callback callp(url, payload, cookie) :: {:ok, response} | {:error, message()} def callp(url, payload), do: impl().callp(url, payload) def callp(url, payload, cookie), do: impl().callp(url, payload, cookie) defp impl, do: Application.get_env(:odoo, :apiclient, Odoo.HttpClient) end