lib/circlex/api/health.ex

defmodule Circlex.Api.Health do
  @moduledoc """
  API Client to the Health API.

  Reference: https://developers.circle.com/reference/ping
  """

  import Circlex.Api.Tooling

  @doc ~S"""
  Pings a server to check connectivity.

  Reference: https://developers.circle.com/reference/ping

  ## Examples

      iex> host = Circlex.Test.start_server()
      iex> Circlex.Api.Health.ping(host: host)
      {:ok, %{message: "pong"}}
  """
  def ping(opts \\ []) do
    case api_get("/ping", Keyword.put(opts, :no_data_key, true)) do
      {:ok, %{"message" => message}} ->
        {:ok, %{message: message}}

      {:error, error} ->
        {:error, error}
    end
  end
end