diff options
| author | syuilo <syuilotan@yahoo.co.jp> | 2018-11-04 03:18:32 +0900 |
|---|---|---|
| committer | syuilo <syuilotan@yahoo.co.jp> | 2018-11-04 03:18:32 +0900 |
| commit | 3487ddabea925c810cd712c8681273c3818a2482 (patch) | |
| tree | a83edd253de845c96923e9dc2786622e3a336272 /src/server/api/endpoints | |
| parent | Fix: welcome-timeline (#3084) (diff) | |
| download | sharkey-3487ddabea925c810cd712c8681273c3818a2482.tar.gz sharkey-3487ddabea925c810cd712c8681273c3818a2482.tar.bz2 sharkey-3487ddabea925c810cd712c8681273c3818a2482.zip | |
[API] Implement some Emoji APIs
Diffstat (limited to 'src/server/api/endpoints')
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/add.ts (renamed from src/server/api/endpoints/admin/add-emoji.ts) | 4 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/list.ts | 33 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/remove.ts | 31 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/update.ts | 49 |
4 files changed, 115 insertions, 2 deletions
diff --git a/src/server/api/endpoints/admin/add-emoji.ts b/src/server/api/endpoints/admin/emoji/add.ts index 9ae258d06c..09e142b17e 100644 --- a/src/server/api/endpoints/admin/add-emoji.ts +++ b/src/server/api/endpoints/admin/emoji/add.ts @@ -1,6 +1,6 @@ import $ from 'cafy'; -import Emoji from '../../../../models/emoji'; -import define from '../../define'; +import Emoji from '../../../../../models/emoji'; +import define from '../../../define'; export const meta = { desc: { diff --git a/src/server/api/endpoints/admin/emoji/list.ts b/src/server/api/endpoints/admin/emoji/list.ts new file mode 100644 index 0000000000..fd69fb0b29 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/list.ts @@ -0,0 +1,33 @@ +import $ from 'cafy'; +import Emoji from '../../../../../models/emoji'; +import define from '../../../define'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を取得します。' + }, + + requireCredential: true, + requireAdmin: true, + + params: { + host: { + validator: $.str.optional.nullable, + default: null as any + } + } +}; + +export default define(meta, (ps) => new Promise(async (res, rej) => { + const emojis = await Emoji.find({ + host: ps.host + }); + + res(emojis.map(e => ({ + id: e._id, + name: e.name, + aliases: e.aliases, + host: e.host, + url: e.url + }))); +})); diff --git a/src/server/api/endpoints/admin/emoji/remove.ts b/src/server/api/endpoints/admin/emoji/remove.ts new file mode 100644 index 0000000000..32f1ced0c8 --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/remove.ts @@ -0,0 +1,31 @@ +import $ from 'cafy'; +import Emoji from '../../../../../models/emoji'; +import define from '../../../define'; +import ID from '../../../../../misc/cafy-id'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を削除します。' + }, + + requireCredential: true, + requireAdmin: true, + + params: { + id: { + validator: $.type(ID) + } + } +}; + +export default define(meta, (ps) => new Promise(async (res, rej) => { + const emoji = await Emoji.findOne({ + _id: ps.id + }); + + if (emoji == null) return rej('emoji not found'); + + await Emoji.remove({ _id: emoji._id }); + + res(); +})); diff --git a/src/server/api/endpoints/admin/emoji/update.ts b/src/server/api/endpoints/admin/emoji/update.ts new file mode 100644 index 0000000000..842ca8924d --- /dev/null +++ b/src/server/api/endpoints/admin/emoji/update.ts @@ -0,0 +1,49 @@ +import $ from 'cafy'; +import Emoji from '../../../../../models/emoji'; +import define from '../../../define'; +import ID from '../../../../../misc/cafy-id'; + +export const meta = { + desc: { + 'ja-JP': 'カスタム絵文字を更新します。' + }, + + requireCredential: true, + requireAdmin: true, + + params: { + id: { + validator: $.type(ID) + }, + + name: { + validator: $.str + }, + + url: { + validator: $.str + }, + + aliases: { + validator: $.arr($.str) + } + } +}; + +export default define(meta, (ps) => new Promise(async (res, rej) => { + const emoji = await Emoji.findOne({ + _id: ps.id + }); + + if (emoji == null) return rej('emoji not found'); + + await Emoji.update({ _id: emoji._id }, { + $set: { + name: ps.name, + aliases: ps.aliases, + url: ps.url + } + }); + + res(); +})); |