From 8cc8a83ab6ad743837c257ec13e02d242db1c495 Mon Sep 17 00:00:00 2001 From: Pierre HUBERT Date: Fri, 3 Apr 2020 19:09:34 +0200 Subject: [PATCH] Check if an emoji with the same shorcut is defined --- src/controllers/SettingsController.ts | 6 ++++++ src/helpers/CustomEmojisHelper.ts | 18 ++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/src/controllers/SettingsController.ts b/src/controllers/SettingsController.ts index dd02d22..61df94a 100644 --- a/src/controllers/SettingsController.ts +++ b/src/controllers/SettingsController.ts @@ -270,6 +270,12 @@ export class SettingsController { */ public static async UploadCustomEmoji(h: RequestHandler) { const shorcut = h.postEmojiShorcut("shorcut"); + + // Check if the user has already a shorcut with the same name + if(await CustomEmojisHelper.HasUserSimilarShorcut(h.getUserId(), shorcut)) + h.error(401, "A custom emoji with the same shorcut is already defined!") + + const path = await h.savePostImage("image", "custom_emojies", 72, 72); // Create the emoji diff --git a/src/helpers/CustomEmojisHelper.ts b/src/helpers/CustomEmojisHelper.ts index cb7b3cc..c7d1090 100644 --- a/src/helpers/CustomEmojisHelper.ts +++ b/src/helpers/CustomEmojisHelper.ts @@ -29,6 +29,24 @@ export class CustomEmojisHelper { ) } + + /** + * Check if a given user has already a custom emoji with + * the same shorcut + * + * @param userID Target user ID + * @param shorcut The name of the shorcut to check + */ + public static async HasUserSimilarShorcut(userID: number, shorcut: string) : Promise { + return await DatabaseHelper.Count({ + table: EMOJIS_TABLE, + where: { + user_id: userID, + shorcut: shorcut + } + }) > 0; + } + /** * Get the list of emojies of a given user *