Current section
Files
Jump to
Current section
Files
lib/teac/event_sub/ad_break.ex
defmodule Teac.EventSub.AdBreak do
@moduledoc """
Represents a `channel.ad_break.begin` EventSub event.
Use `from_event/1` in your `Teac.WssClient.Handler` callback to convert
the raw event map to a typed struct.
"""
@type t :: %__MODULE__{
broadcaster_user_id: String.t(),
broadcaster_username: String.t(),
requester_user_id: String.t(),
requester_username: String.t(),
duration_seconds: non_neg_integer(),
started_at: String.t(),
is_automatic: boolean()
}
defstruct [
:broadcaster_user_id,
:broadcaster_username,
:requester_user_id,
:requester_username,
:duration_seconds,
:started_at,
:is_automatic
]
@doc """
Parses a raw `channel.ad_break.begin` event map into a `%AdBreak{}`.
"""
@spec from_event(map()) :: t()
def from_event(event) do
%__MODULE__{
broadcaster_user_id: event["broadcaster_user_id"],
broadcaster_username: event["broadcaster_user_name"],
requester_user_id: event["requester_user_id"],
requester_username: event["requester_user_name"],
duration_seconds: event["duration_seconds"],
started_at: event["started_at"],
is_automatic: event["is_automatic"]
}
end
end