From 2ea419287f63f106bb41c50deb7709ba0ecdf332 Mon Sep 17 00:00:00 2001 From: lts20050703 <87189679+lts20050703@users.noreply.github.com> Date: Wed, 22 Dec 2021 11:20:40 +0700 Subject: [PATCH] #1815 editStageInstance and createStageInstance should use a transformer #1815 editStageInstance and createStageInstance should use a transformer --- src/bot.ts | 3 ++ src/helpers/channels/createStageInstance.ts | 7 +---- src/helpers/channels/getStageInstance.ts | 7 +---- src/helpers/channels/updateStageInstance.ts | 7 +---- src/transformers/stageInstance.ts | 33 +++++++++++++++++++++ 5 files changed, 39 insertions(+), 18 deletions(-) create mode 100644 src/transformers/stageInstance.ts diff --git a/src/bot.ts b/src/bot.ts index a424d2717..3dda25b53 100644 --- a/src/bot.ts +++ b/src/bot.ts @@ -91,6 +91,7 @@ import { transformApplicationCommand } from "./transformers/applicationCommand.t import { transformWelcomeScreen } from "./transformers/welcomeScreen.ts"; import { transformVoiceRegion } from "./transformers/voiceRegion.ts"; import { transformWidget } from "./transformers/widget.ts"; +import { transformStageInstance } from "./transformers/stageInstance.ts"; export function createBot(options: CreateBotOptions): Bot { const bot = { @@ -484,6 +485,7 @@ export interface Transformers { welcomeScreen: typeof transformWelcomeScreen; voiceRegion: typeof transformVoiceRegion; widget: typeof transformWidget; + stageInstance: typeof transformStageInstance; } export function createTransformers(options: Partial) { @@ -517,6 +519,7 @@ export function createTransformers(options: Partial) { welcomeScreen: options.welcomeScreen || transformWelcomeScreen, voiceRegion: options.voiceRegion || transformVoiceRegion, widget: options.widget || transformWidget, + stageInstance: options.stageInstance || transformStageInstance, }; } diff --git a/src/helpers/channels/createStageInstance.ts b/src/helpers/channels/createStageInstance.ts index 685d6249b..d9752d9f8 100644 --- a/src/helpers/channels/createStageInstance.ts +++ b/src/helpers/channels/createStageInstance.ts @@ -10,10 +10,5 @@ export async function createStageInstance(bot: Bot, channelId: bigint, topic: st privacy_level: privacyLevel || PrivacyLevel.GuildOnly, }); - return { - id: bot.transformers.snowflake(result.id), - guildId: bot.transformers.snowflake(result.guild_id), - channelId: bot.transformers.snowflake(result.channel_id), - topic: result.topic, - }; + return bot.transformers.stageInstance(bot, result); } diff --git a/src/helpers/channels/getStageInstance.ts b/src/helpers/channels/getStageInstance.ts index 4f9d41c92..cc548ce98 100644 --- a/src/helpers/channels/getStageInstance.ts +++ b/src/helpers/channels/getStageInstance.ts @@ -9,10 +9,5 @@ export async function getStageInstance(bot: Bot, channelId: bigint) { bot.constants.endpoints.STAGE_INSTANCE(channelId) ); - return { - id: bot.transformers.snowflake(result.id), - guildId: bot.transformers.snowflake(result.guild_id), - channelId: bot.transformers.snowflake(result.channel_id), - topic: result.topic, - }; + return bot.transformers.stageInstance(bot, result); } diff --git a/src/helpers/channels/updateStageInstance.ts b/src/helpers/channels/updateStageInstance.ts index 9559840c9..85cc3a76b 100644 --- a/src/helpers/channels/updateStageInstance.ts +++ b/src/helpers/channels/updateStageInstance.ts @@ -13,10 +13,5 @@ export async function updateStageInstance(bot: Bot, channelId: bigint, data: AtL } ); - return { - id: bot.transformers.snowflake(result.id), - guildId: bot.transformers.snowflake(result.guild_id), - channelId: bot.transformers.snowflake(result.channel_id), - topic: result.topic, - }; + return bot.transformers.stageInstance(bot, result); } diff --git a/src/transformers/stageInstance.ts b/src/transformers/stageInstance.ts new file mode 100644 index 000000000..a32e8d23f --- /dev/null +++ b/src/transformers/stageInstance.ts @@ -0,0 +1,33 @@ +import { Bot } from "../bot.ts"; +import { StageInstance } from "../types/channels/stageInstance.ts"; +import { SnakeCasedPropertiesDeep } from "../types/util.ts"; +import { PrivacyLevel } from "../types/channels/privacyLevel.ts"; + +export function transformStageInstance( + bot: Bot, + payload: SnakeCasedPropertiesDeep +): DiscordenoStageInstance { + return { + id: bot.transformers.snowflake(payload.id), + guildId: bot.transformers.snowflake(payload.guild_id), + channelId: bot.transformers.snowflake(payload.channel_id), + topic: payload.topic, + privacyLevel: payload.privacy_level, + discoverableDisabled: payload.discoverable_disabled, + }; +} + +export interface DiscordenoStageInstance { + /** The id of this Stage instance */ + id: bigint; + /** The guild id of the associated Stage channel */ + guildId: bigint; + /** The id of the associated Stage channel */ + channelId: bigint; + /** The topic of the Stage instance (1-120 characters) */ + topic: string; + /** The privacy level of the Stage instance */ + privacyLevel: PrivacyLevel; + /** Whether or not Stage discovery is disabled */ + discoverableDisabled: boolean; +}