summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-11-04 03:18:32 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-11-04 03:18:32 +0900
commit3487ddabea925c810cd712c8681273c3818a2482 (patch)
treea83edd253de845c96923e9dc2786622e3a336272 /src/server/api/endpoints
parentFix: welcome-timeline (#3084) (diff)
downloadsharkey-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.ts33
-rw-r--r--src/server/api/endpoints/admin/emoji/remove.ts31
-rw-r--r--src/server/api/endpoints/admin/emoji/update.ts49
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();
+}));