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);