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 *