ConvergerClient (converger_client v0.1.1)

Copy Markdown View Source

Elixir client for Converger.

  • ConvergerClient.ClientAPI - the client API (/api/v1/converger, converger tokens)

  • ConvergerClient.TenantAPI - the tenant API (/api/v1, x-api-key)

  • ConvergerClient.Socket - Protocol v1 WebSocket client with resume

  • ConvergerClient.Webhook - outbound webhook signature verification

    client = ConvergerClient.new("https://chat.example.com", apikey: "cvg_live...", channel_secret: "...") {:ok, token} = ConvergerClient.ClientAPI.generate_token(client, user_id: "user-42") {:ok, conv} = ConvergerClient.ClientAPI.create_conversation(client, token.token) {:ok, activity} = ConvergerClient.TenantAPI.post_activity(client, conv.conversation_id, %{sender: "bot", text: "Hi!"})

Every call returns {:ok, struct} or {:error, %ConvergerClient.Error{}} (or {:error, exception} for transport failures).

Summary

Types

t()

@type t() :: %ConvergerClient{
  api_key: String.t() | nil,
  base_url: String.t(),
  channel_secret: String.t() | nil,
  req_options: keyword()
}

Functions

new(base_url, opts \\ [])

@spec new(String.t(), keyword()) :: t()

Creates a client.

Options: :api_key (tenant API key), :channel_secret (for ClientAPI.generate_token/2), :req_options (merged into every Req request, for example plug: in tests or receive_timeout:).