@twurple/eventsub-base
Version:
Base for the other Twurple EventSub packages
114 lines (113 loc) • 8.9 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.EventSubChannelModerateSubscription = void 0;
const tslib_1 = require("tslib");
const common_1 = require("@twurple/common");
const EventSubSubscription_1 = require("./EventSubSubscription");
const EventSubChannelBanModerationEvent_1 = require("../events/moderation/EventSubChannelBanModerationEvent");
const EventSubChannelDeleteModerationEvent_1 = require("../events/moderation/EventSubChannelDeleteModerationEvent");
const EventSubChannelTimeoutModerationEvent_1 = require("../events/moderation/EventSubChannelTimeoutModerationEvent");
const EventSubChannelClearModerationEvent_1 = require("../events/moderation/EventSubChannelClearModerationEvent");
const EventSubChannelAutoModTermsModerationEvent_1 = require("../events/moderation/EventSubChannelAutoModTermsModerationEvent");
const EventSubChannelUnbanRequestModerationEvent_1 = require("../events/moderation/EventSubChannelUnbanRequestModerationEvent");
const EventSubChannelUnbanModerationEvent_1 = require("../events/moderation/EventSubChannelUnbanModerationEvent");
const EventSubChannelUntimeoutModerationEvent_1 = require("../events/moderation/EventSubChannelUntimeoutModerationEvent");
const EventSubChannelEmoteOnlyModerationEvent_1 = require("../events/moderation/EventSubChannelEmoteOnlyModerationEvent");
const EventSubChannelEmoteOnlyOffModerationEvent_1 = require("../events/moderation/EventSubChannelEmoteOnlyOffModerationEvent");
const EventSubChannelFollowersModerationEvent_1 = require("../events/moderation/EventSubChannelFollowersModerationEvent");
const EventSubChannelFollowersOffModerationEvent_1 = require("../events/moderation/EventSubChannelFollowersOffModerationEvent");
const EventSubChannelUniqueChatModerationEvent_1 = require("../events/moderation/EventSubChannelUniqueChatModerationEvent");
const EventSubChannelUniqueChatOffModerationEvent_1 = require("../events/moderation/EventSubChannelUniqueChatOffModerationEvent");
const EventSubChannelSlowModerationEvent_1 = require("../events/moderation/EventSubChannelSlowModerationEvent");
const EventSubChannelSlowOffModerationEvent_1 = require("../events/moderation/EventSubChannelSlowOffModerationEvent");
const EventSubChannelSubscribersModerationEvent_1 = require("../events/moderation/EventSubChannelSubscribersModerationEvent");
const EventSubChannelSubscribersOffModerationEvent_1 = require("../events/moderation/EventSubChannelSubscribersOffModerationEvent");
const EventSubChannelRaidModerationEvent_1 = require("../events/moderation/EventSubChannelRaidModerationEvent");
const EventSubChannelUnraidModerationEvent_1 = require("../events/moderation/EventSubChannelUnraidModerationEvent");
const EventSubChannelModModerationEvent_1 = require("../events/moderation/EventSubChannelModModerationEvent");
const EventSubChannelUnmodModerationEvent_1 = require("../events/moderation/EventSubChannelUnmodModerationEvent");
const EventSubChannelVipModerationEvent_1 = require("../events/moderation/EventSubChannelVipModerationEvent");
const EventSubChannelUnvipModerationEvent_1 = require("../events/moderation/EventSubChannelUnvipModerationEvent");
const EventSubChannelWarnModerationEvent_1 = require("../events/moderation/EventSubChannelWarnModerationEvent");
/** @internal */
let EventSubChannelModerateSubscription = class EventSubChannelModerateSubscription extends EventSubSubscription_1.EventSubSubscription {
constructor(handler, client, _broadcasterId, _moderatorId) {
super(handler, client);
this._broadcasterId = _broadcasterId;
this._moderatorId = _moderatorId;
/** @protected */ this._cliName = '';
}
get id() {
return `channel.moderate.${this._broadcasterId}.${this._moderatorId}`;
}
get authUserId() {
return this._moderatorId;
}
transformData(data) {
switch (data.action) {
case 'delete':
return new EventSubChannelDeleteModerationEvent_1.EventSubChannelDeleteModerationEvent(data, this._client._apiClient);
case 'clear':
return new EventSubChannelClearModerationEvent_1.EventSubChannelClearModerationEvent(data, this._client._apiClient);
case 'timeout':
return new EventSubChannelTimeoutModerationEvent_1.EventSubChannelTimeoutModerationEvent(data, this._client._apiClient);
case 'untimeout':
return new EventSubChannelUntimeoutModerationEvent_1.EventSubChannelUntimeoutModerationEvent(data, this._client._apiClient);
case 'ban':
return new EventSubChannelBanModerationEvent_1.EventSubChannelBanModerationEvent(data, this._client._apiClient);
case 'unban':
return new EventSubChannelUnbanModerationEvent_1.EventSubChannelUnbanModerationEvent(data, this._client._apiClient);
case 'emoteonly':
return new EventSubChannelEmoteOnlyModerationEvent_1.EventSubChannelEmoteOnlyModerationEvent(data, this._client._apiClient);
case 'emoteonlyoff':
return new EventSubChannelEmoteOnlyOffModerationEvent_1.EventSubChannelEmoteOnlyOffModerationEvent(data, this._client._apiClient);
case 'followers':
return new EventSubChannelFollowersModerationEvent_1.EventSubChannelFollowersModerationEvent(data, this._client._apiClient);
case 'followersoff':
return new EventSubChannelFollowersOffModerationEvent_1.EventSubChannelFollowersOffModerationEvent(data, this._client._apiClient);
case 'uniquechat':
return new EventSubChannelUniqueChatModerationEvent_1.EventSubChannelUniqueChatModerationEvent(data, this._client._apiClient);
case 'uniquechatoff':
return new EventSubChannelUniqueChatOffModerationEvent_1.EventSubChannelUniqueChatOffModerationEvent(data, this._client._apiClient);
case 'slow':
return new EventSubChannelSlowModerationEvent_1.EventSubChannelSlowModerationEvent(data, this._client._apiClient);
case 'slowoff':
return new EventSubChannelSlowOffModerationEvent_1.EventSubChannelSlowOffModerationEvent(data, this._client._apiClient);
case 'subscribers':
return new EventSubChannelSubscribersModerationEvent_1.EventSubChannelSubscribersModerationEvent(data, this._client._apiClient);
case 'subscribersoff':
return new EventSubChannelSubscribersOffModerationEvent_1.EventSubChannelSubscribersOffModerationEvent(data, this._client._apiClient);
case 'raid':
return new EventSubChannelRaidModerationEvent_1.EventSubChannelRaidModerationEvent(data, this._client._apiClient);
case 'unraid':
return new EventSubChannelUnraidModerationEvent_1.EventSubChannelUnraidModerationEvent(data, this._client._apiClient);
case 'mod':
return new EventSubChannelModModerationEvent_1.EventSubChannelModModerationEvent(data, this._client._apiClient);
case 'unmod':
return new EventSubChannelUnmodModerationEvent_1.EventSubChannelUnmodModerationEvent(data, this._client._apiClient);
case 'vip':
return new EventSubChannelVipModerationEvent_1.EventSubChannelVipModerationEvent(data, this._client._apiClient);
case 'unvip':
return new EventSubChannelUnvipModerationEvent_1.EventSubChannelUnvipModerationEvent(data, this._client._apiClient);
case 'warn':
return new EventSubChannelWarnModerationEvent_1.EventSubChannelWarnModerationEvent(data, this._client._apiClient);
case 'add_blocked_term':
case 'add_permitted_term':
case 'remove_blocked_term':
case 'remove_permitted_term':
return new EventSubChannelAutoModTermsModerationEvent_1.EventSubChannelAutoModTermsModerationEvent(data, data.action, this._client._apiClient);
case 'approve_unban_request':
case 'deny_unban_request':
return new EventSubChannelUnbanRequestModerationEvent_1.EventSubChannelUnbanRequestModerationEvent(data, data.action, this._client._apiClient);
default:
throw new Error(`Unknown moderation action: ${data.action}`);
}
}
async _subscribe() {
return await this._client._apiClient.asUser(this._moderatorId, async (ctx) => await ctx.eventSub.subscribeToChannelModerateEvents(this._broadcasterId, await this._getTransportOptions()));
}
};
exports.EventSubChannelModerateSubscription = EventSubChannelModerateSubscription;
exports.EventSubChannelModerateSubscription = EventSubChannelModerateSubscription = tslib_1.__decorate([
(0, common_1.rtfm)('eventsub-base', 'EventSubSubscription')
], EventSubChannelModerateSubscription);