defmodule Circlex.Api.Management do
@moduledoc """
API Client to the Management API.
Reference: https://developers.circle.com/reference/getconfig
"""
import Circlex.Api.Tooling
@doc ~S"""
Retrieves general configuration information.
Reference: https://developers.circle.com/reference/getconfig
## Examples
iex> host = Circlex.Test.start_server()
iex> Circlex.Api.Management.get_config(host: host)
{:ok, %{payments: %{master_wallet_id: "1000216185"}}}
iex> host = Circlex.Test.start_server(no_load: true)
iex> Circlex.Api.Management.get_config(host: host)
{:error, %{error: "System Configuration Issue: no main \"merchant\" wallet specified"}}
"""
def get_config(opts \\ []) do
with {:ok, %{"payments" => %{"masterWalletId" => master_wallet_id}}} <-
api_get("/v1/configuration", opts) do
{:ok, %{payments: %{master_wallet_id: master_wallet_id}}}
end
end
end