From 727a60551a490fdf9f2b5174abc395a1ae87a9d6 Mon Sep 17 00:00:00 2001 From: ITOH <72305210+itohatweb@users.noreply.github.com> Date: Tue, 19 Jan 2021 15:20:12 +0100 Subject: [PATCH] feat(handlers): inhibitors for deleteChannel() (#401) * better deleteChannel function * throw error if guild wasn't found * remove dm close ability * change this comment again * guildID should be first --- src/api/handlers/guild.ts | 11 +++++++++++ src/types/errors.ts | 3 +++ 2 files changed, 14 insertions(+) diff --git a/src/api/handlers/guild.ts b/src/api/handlers/guild.ts index 25ee6b243..25e6cd7e8 100644 --- a/src/api/handlers/guild.ts +++ b/src/api/handlers/guild.ts @@ -148,6 +148,17 @@ export async function deleteChannel( throw new Error(Errors.MISSING_MANAGE_CHANNELS); } + const guild = await cacheHandlers.get("guilds", guildID); + if (!guild) throw new Error(Errors.GUILD_NOT_FOUND); + + if (guild?.rulesChannelID === channelID) { + throw new Error(Errors.RULES_CHANNEL_CANNOT_BE_DELETED); + } + + if (guild?.publicUpdatesChannelID === channelID) { + throw new Error(Errors.UPDATES_CHANNEL_CANNOT_BE_DELETED); + } + return RequestManager.delete(endpoints.CHANNEL_BASE(channelID), { reason }); } diff --git a/src/types/errors.ts b/src/types/errors.ts index f0f758977..02fe6c29a 100644 --- a/src/types/errors.ts +++ b/src/types/errors.ts @@ -39,4 +39,7 @@ export enum Errors { USERNAME_MIN_LENGTH = "USERNAME_MIN_LENGTH", USERNAME_INVALID_CHARACTER = "USERNAME_INVALID_CHARACTER", USERNAME_INVALID_USERNAME = "USERNAME_INVALID_USERNAME", + RULES_CHANNEL_CANNOT_BE_DELETED = "RULES_CHANNEL_CANNOT_BE_DELETED", + UPDATES_CHANNEL_CANNOT_BE_DELETED = "UPDATES_CHANNEL_CANNOT_BE_DELETED", + GUILD_NOT_FOUND = "GUILD_NOT_FOUND", }