ExFinchTwitch.Types.TwitchSubscriptionQueryParams (ExFinchTwitch v0.0.1-dev)

View Source

Represents allowed query parameters for Twitch's EventSub /subscriptions endpoint.

For reference, see: https://dev.twitch.tv/docs/api/reference/#get-eventsub-subscriptions

Summary

Types

Subscription status.

Twitch EventSub subscription type as an atom.

t()

Query parameters allowed for fetching EventSub subscriptions.

Functions

Converts the struct into a keyword list suitable for URI encoding in an HTTP query.

Types

status()

@type status() ::
  :enabled
  | :webhook_callback_verification_pending
  | :webhook_callback_verification_failed
  | :notification_failures_exceeded
  | :authorization_revoked
  | :moderator_removed
  | :user_removed

Subscription status.

Possible values:

  • :enabled – Subscription is active and sending notifications.
  • :webhook_callback_verification_pending – Twitch is waiting for you to respond to the challenge.
  • :webhook_callback_verification_failed – You failed to respond correctly or in time.
  • :notification_failures_exceeded – Too many failed delivery attempts.
  • :authorization_revoked – OAuth token was revoked or expired.
  • :moderator_removed – The moderator who created the subscription was removed.
  • :user_removed – The user who created the subscription was removed.

subscription_type()

@type subscription_type() ::
  :channel__update
  | :channel__follow
  | :channel__moderator__add
  | :channel__moderator__remove
  | :channel__subscribe
  | :channel__subscription__end
  | :channel__subscription__gift
  | :channel__subscription__message
  | :channel__cheer
  | :channel__raid
  | :channel__ban
  | :channel__unban
  | :channel__message__delete
  | :channel__unraid
  | :channel__poll__begin
  | :channel__poll__progress
  | :channel__poll__end
  | :channel__prediction__begin
  | :channel__prediction__progress
  | :channel__prediction__lock
  | :channel__prediction__end
  | :channel__goal__begin
  | :channel__goal__progress
  | :channel__goal__end
  | :channel__hype_train__begin
  | :channel__hype_train__progress
  | :channel__hype_train__end
  | :stream__online
  | :stream__offline
  | :user__authorization__grant
  | :user__authorization__revoke
  | :user__update
  | :channel__shield_mode__begin
  | :channel__shield_mode__end
  | :channel__shoutout__create
  | :channel__shoutout__receive
  | :channel__guest_star_session__begin
  | :channel__guest_star_session__end
  | :channel__guest_star__guest__update
  | :channel__guest_star__guest__add
  | :channel__guest_star__guest__remove
  | :channel__guest_star__guest_slot__update
  | :channel__chat__message
  | :channel__chat__notification
  | :automod__message__hold
  | :automod__message__update

Twitch EventSub subscription type as an atom.

Use these atom variants to refer to subscription types in a safer, more Elixir-friendly way.

Examples:

  • :channel__follow
  • :channel__subscribe
  • :channel__raid
  • :channel__update
  • :channel__moderator_add
  • :channel__chat__message
  • :stream__online
  • :stream__offline

These map directly to the EventSub string types (e.g., "channel.chat.clear_user_messages" becomes :channel__chat__clear_user_messages).

Full list of possible types: https://dev.twitch.tv/docs/eventsub/eventsub-subscription-types/

t()

@type t() :: %ExFinchTwitch.Types.TwitchSubscriptionQueryParams{
  after: String.t() | nil,
  first: pos_integer() | nil,
  status: status() | nil,
  type: subscription_type() | nil,
  user_id: String.t() | nil
}

Query parameters allowed for fetching EventSub subscriptions.

Functions

to_query(params)

Converts the struct into a keyword list suitable for URI encoding in an HTTP query.

Converts atoms like :enabled into string form automatically.