From 5c44c75c237be7ebfad07dc7d43566e0ec62a010 Mon Sep 17 00:00:00 2001 From: MeiMei <30769358+mei23@users.noreply.github.com> Date: Wed, 16 Oct 2019 04:03:18 +0900 Subject: [PATCH] =?UTF-8?q?Fix=20#5504=20=E3=81=AA=E3=81=A9=20(#5507)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * カスタム絵文字を重複登録できないように * fix * fix --- src/server/api/endpoints/admin/emoji/add.ts | 13 +++++++++++++ src/server/api/endpoints/admin/emoji/remove.ts | 11 ++++++++++- src/server/api/endpoints/admin/emoji/update.ts | 11 ++++++++++- 3 files changed, 33 insertions(+), 2 deletions(-) diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts index 8c21b1c73..6a91c31a9 100644 --- a/src/server/api/endpoints/admin/emoji/add.ts +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -5,6 +5,7 @@ import { Emojis } from '../../../../../models'; import { genId } from '../../../../../misc/gen-id'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { ApiError } from '../../../error'; export const meta = { desc: { @@ -29,12 +30,24 @@ export const meta = { validator: $.optional.arr($.str.min(1)), default: [] as string[] } + }, + + errors: { + emojiAlredyExists: { + message: 'Emoji already exists.', + code: 'EMOJI_ALREADY_EXISTS', + id: 'fc46b5a4-6b92-4c33-ac66-b806659bb5cf' + } } }; export default define(meta, async (ps, me) => { const type = await detectUrlMine(ps.url); + const exists = await Emojis.findOne({ name: ps.name }); + + if (exists != null) throw new ApiError(meta.errors.emojiAlredyExists); + const emoji = await Emojis.save({ id: genId(), updatedAt: new Date(), diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/src/server/api/endpoints/admin/emoji/remove.ts index 92c5f5f8c..a591d4c3d 100644 --- a/src/server/api/endpoints/admin/emoji/remove.ts +++ b/src/server/api/endpoints/admin/emoji/remove.ts @@ -4,6 +4,7 @@ import { ID } from '../../../../../misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; import { insertModerationLog } from '../../../../../services/insert-moderation-log'; +import { ApiError } from '../../../error'; export const meta = { desc: { @@ -19,13 +20,21 @@ export const meta = { id: { validator: $.type(ID) } + }, + + errors: { + noSuchEmoji: { + message: 'No such emoji.', + code: 'NO_SUCH_EMOJI', + id: 'be83669b-773a-44b7-b1f8-e5e5170ac3c2' + } } }; export default define(meta, async (ps, me) => { const emoji = await Emojis.findOne(ps.id); - if (emoji == null) throw new Error('emoji not found'); + if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); await Emojis.delete(emoji.id); diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts index f8bc638fc..062a8d0fb 100644 --- a/src/server/api/endpoints/admin/emoji/update.ts +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -4,6 +4,7 @@ import { detectUrlMine } from '../../../../../misc/detect-url-mine'; import { ID } from '../../../../../misc/cafy-id'; import { Emojis } from '../../../../../models'; import { getConnection } from 'typeorm'; +import { ApiError } from '../../../error'; export const meta = { desc: { @@ -31,13 +32,21 @@ export const meta = { aliases: { validator: $.arr($.str) } + }, + + errors: { + noSuchEmoji: { + message: 'No such emoji.', + code: 'NO_SUCH_EMOJI', + id: '684dec9d-a8c2-4364-9aa8-456c49cb1dc8' + } } }; export default define(meta, async (ps) => { const emoji = await Emojis.findOne(ps.id); - if (emoji == null) throw new Error('emoji not found'); + if (emoji == null) throw new ApiError(meta.errors.noSuchEmoji); const type = await detectUrlMine(ps.url);