summaryrefslogtreecommitdiff
path: root/src/server/api
diff options
context:
space:
mode:
authorMeiMei <30769358+mei23@users.noreply.github.com>2019-10-16 04:03:18 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-10-16 04:03:18 +0900
commit5c44c75c237be7ebfad07dc7d43566e0ec62a010 (patch)
tree4a2902a509e9182a82e5b264d14ca7f62ef3a2a4 /src/server/api
parentみつけるの微修正 (#5506) (diff)
downloadsharkey-5c44c75c237be7ebfad07dc7d43566e0ec62a010.tar.gz
sharkey-5c44c75c237be7ebfad07dc7d43566e0ec62a010.tar.bz2
sharkey-5c44c75c237be7ebfad07dc7d43566e0ec62a010.zip
Fix #5504 など (#5507)
* カスタム絵文字を重複登録できないように * fix * fix
Diffstat (limited to 'src/server/api')
-rw-r--r--src/server/api/endpoints/admin/emoji/add.ts13
-rw-r--r--src/server/api/endpoints/admin/emoji/remove.ts11
-rw-r--r--src/server/api/endpoints/admin/emoji/update.ts11
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 8c21b1c73e..6a91c31a95 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 92c5f5f8c6..a591d4c3dd 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 f8bc638fcf..062a8d0fb8 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);