GelotvBot.APIs.Twitch (GeloTVBot v0.1.0)

Copy Markdown View Source

Generic Twitch Helix API client.

This module intentionally exposes a generic request function so the package can reach current and future Helix endpoints without depending on external HTTP or JSON libraries.

Summary

Types

credentials()

@type credentials() :: %{
  optional(:access_token) => String.t(),
  optional(:client_id) => String.t()
}

Functions

chat_settings(credentials, broadcaster_id, moderator_id, opts \\ [])

@spec chat_settings(credentials(), String.t(), String.t(), keyword()) ::
  GelotvBot.HTTPClient.response()

client_credentials_token(credentials, opts \\ [])

@spec client_credentials_token(
  map() | keyword(),
  keyword()
) :: {:ok, map()} | {:error, term()}

delete(path, credentials, opts \\ [])

delete_decoded(path, credentials, opts \\ [])

get(path, credentials, opts \\ [])

get_decoded(path, credentials, opts \\ [])

paginate(path, credentials, opts \\ [])

@spec paginate(String.t(), credentials(), keyword()) ::
  {:ok, [map()]} | {:error, term()}

patch(path, credentials, body, opts \\ [])

patch_decoded(path, credentials, body, opts \\ [])

post(path, credentials, body, opts \\ [])

post_decoded(path, credentials, body, opts \\ [])

put(path, credentials, body, opts \\ [])

put_decoded(path, credentials, body, opts \\ [])

refresh_token(credentials, opts \\ [])

@spec refresh_token(
  map() | keyword(),
  keyword()
) :: {:ok, map()} | {:error, term()}

request(method, path, credentials, opts \\ [])

request_decoded(method, path, credentials, opts \\ [])

@spec request_decoded(atom(), String.t(), credentials(), keyword()) ::
  {:ok, map()} | {:error, term()}

send_chat_message(credentials, body, opts \\ [])

@spec send_chat_message(credentials(), map(), keyword()) ::
  GelotvBot.HTTPClient.response()

streams(credentials, opts \\ [])

users(credentials, opts \\ [])