From f5cc70d943c674e29a04a0748d2f862699f7f1d6 Mon Sep 17 00:00:00 2001 From: nenohi Date: Sat, 30 Sep 2023 23:20:50 +0900 Subject: [PATCH] =?UTF-8?q?=E3=82=A2=E3=83=83=E3=83=97=E3=83=87=E3=83=BC?= =?UTF-8?q?=E3=83=88=E6=99=82=E3=81=AE=E3=83=81=E3=82=A7=E3=83=83=E3=82=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/backend/src/core/CustomEmojiService.ts | 5 +++++ .../src/server/api/endpoints/admin/emoji/update.ts | 11 ++++++++--- 2 files changed, 13 insertions(+), 3 deletions(-) diff --git a/packages/backend/src/core/CustomEmojiService.ts b/packages/backend/src/core/CustomEmojiService.ts index d438820e27..a0d0bb95f3 100644 --- a/packages/backend/src/core/CustomEmojiService.ts +++ b/packages/backend/src/core/CustomEmojiService.ts @@ -387,6 +387,11 @@ export class CustomEmojiService implements OnApplicationShutdown { return (await this.emojisRepository.findOneBy({ name, host: IsNull() })) !== null; } + @bindThis + public async getEmojiById(id: string): Promise { + return this.emojisRepository.findOneBy({ id }); + } + @bindThis public dispose(): void { this.cache.dispose(); diff --git a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts index c057eeb590..f9ca7baef8 100644 --- a/packages/backend/src/server/api/endpoints/admin/emoji/update.ts +++ b/packages/backend/src/server/api/endpoints/admin/emoji/update.ts @@ -74,9 +74,14 @@ export default class extends Endpoint { // eslint- driveFile = await this.driveFilesRepository.findOneBy({ id: ps.fileId }); if (driveFile == null) throw new ApiError(meta.errors.noSuchFile); } - if (ps.name) { - const duplicateCheck = await this.customEmojiService.isDuplicateCheck(ps.name); - if (duplicateCheck != null) throw new ApiError(meta.errors.sameNameEmojiExists); + const oldemoji = await this.customEmojiService.getEmojiById(ps.id); + if (oldemoji !== null) { + if (ps.name !== oldemoji.name) { + const duplicateCheck = await this.customEmojiService.isDuplicateCheck(ps.name); + if (duplicateCheck) throw new ApiError(meta.errors.sameNameEmojiExists); + } + } else { + throw new ApiError(meta.errors.noSuchEmoji); } await this.customEmojiService.update(ps.id, {