summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints/admin
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints/admin')
-rw-r--r--src/server/api/endpoints/admin/emoji/add.ts39
-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.ts50
-rw-r--r--src/server/api/endpoints/admin/invite.ts5
-rw-r--r--src/server/api/endpoints/admin/suspend-user.ts17
-rw-r--r--src/server/api/endpoints/admin/unsuspend-user.ts17
-rw-r--r--src/server/api/endpoints/admin/unverify-user.ts17
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts34
-rw-r--r--src/server/api/endpoints/admin/verify-user.ts17
10 files changed, 206 insertions, 54 deletions
diff --git a/src/server/api/endpoints/admin/emoji/add.ts b/src/server/api/endpoints/admin/emoji/add.ts
new file mode 100644
index 0000000000..533dd75af9
--- /dev/null
+++ b/src/server/api/endpoints/admin/emoji/add.ts
@@ -0,0 +1,39 @@
+import $ from 'cafy';
+import Emoji from '../../../../../models/emoji';
+import define from '../../../define';
+
+export const meta = {
+ desc: {
+ 'ja-JP': 'カスタム絵文字を追加します。'
+ },
+
+ requireCredential: true,
+ requireAdmin: true,
+
+ params: {
+ name: {
+ validator: $.str
+ },
+
+ url: {
+ validator: $.str
+ },
+
+ aliases: {
+ validator: $.arr($.str).optional,
+ default: [] as string[]
+ }
+ }
+};
+
+export default define(meta, (ps) => new Promise(async (res, rej) => {
+ await Emoji.insert({
+ updatedAt: new Date(),
+ name: ps.name,
+ host: null,
+ aliases: ps.aliases,
+ url: ps.url
+ });
+
+ res();
+}));
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..d0c2e6dafc
--- /dev/null
+++ b/src/server/api/endpoints/admin/emoji/update.ts
@@ -0,0 +1,50 @@
+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: {
+ updatedAt: new Date(),
+ name: ps.name,
+ aliases: ps.aliases,
+ url: ps.url
+ }
+ });
+
+ res();
+}));
diff --git a/src/server/api/endpoints/admin/invite.ts b/src/server/api/endpoints/admin/invite.ts
index 892b2579f2..056cb8aa75 100644
--- a/src/server/api/endpoints/admin/invite.ts
+++ b/src/server/api/endpoints/admin/invite.ts
@@ -1,5 +1,6 @@
import rndstr from 'rndstr';
import RegistrationTicket from '../../../../models/registration-tickets';
+import define from '../../define';
export const meta = {
desc: {
@@ -12,7 +13,7 @@ export const meta = {
params: {}
};
-export default (params: any) => new Promise(async (res, rej) => {
+export default define(meta, (ps) => new Promise(async (res, rej) => {
const code = rndstr({ length: 5, chars: '0-9' });
await RegistrationTicket.insert({
@@ -23,4 +24,4 @@ export default (params: any) => new Promise(async (res, rej) => {
res({
code: code
});
-});
+}));
diff --git a/src/server/api/endpoints/admin/suspend-user.ts b/src/server/api/endpoints/admin/suspend-user.ts
index 32c2416fb5..0ad0aab74c 100644
--- a/src/server/api/endpoints/admin/suspend-user.ts
+++ b/src/server/api/endpoints/admin/suspend-user.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
-import ID from '../../../../misc/cafy-id';
-import getParams from '../../get-params';
+import ID, { transform } from '../../../../misc/cafy-id';
+import define from '../../define';
import User from '../../../../models/user';
export const meta = {
@@ -13,19 +13,18 @@ export const meta = {
requireAdmin: true,
params: {
- userId: $.type(ID).note({
+ userId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のユーザーID',
'en-US': 'The user ID which you want to suspend'
}
- }),
+ },
}
};
-export default (params: any) => new Promise(async (res, rej) => {
- const [ps, psErr] = getParams(meta, params);
- if (psErr) return rej(psErr);
-
+export default define(meta, (ps) => new Promise(async (res, rej) => {
const user = await User.findOne({
_id: ps.userId
});
@@ -47,4 +46,4 @@ export default (params: any) => new Promise(async (res, rej) => {
});
res();
-});
+}));
diff --git a/src/server/api/endpoints/admin/unsuspend-user.ts b/src/server/api/endpoints/admin/unsuspend-user.ts
index 879c23ab14..7c5eedee46 100644
--- a/src/server/api/endpoints/admin/unsuspend-user.ts
+++ b/src/server/api/endpoints/admin/unsuspend-user.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
-import ID from '../../../../misc/cafy-id';
-import getParams from '../../get-params';
+import ID, { transform } from '../../../../misc/cafy-id';
+import define from '../../define';
import User from '../../../../models/user';
export const meta = {
@@ -13,19 +13,18 @@ export const meta = {
requireAdmin: true,
params: {
- userId: $.type(ID).note({
+ userId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のユーザーID',
'en-US': 'The user ID which you want to unsuspend'
}
- }),
+ },
}
};
-export default (params: any) => new Promise(async (res, rej) => {
- const [ps, psErr] = getParams(meta, params);
- if (psErr) return rej(psErr);
-
+export default define(meta, (ps) => new Promise(async (res, rej) => {
const user = await User.findOne({
_id: ps.userId
});
@@ -43,4 +42,4 @@ export default (params: any) => new Promise(async (res, rej) => {
});
res();
-});
+}));
diff --git a/src/server/api/endpoints/admin/unverify-user.ts b/src/server/api/endpoints/admin/unverify-user.ts
index 178049fa1d..d749e002e3 100644
--- a/src/server/api/endpoints/admin/unverify-user.ts
+++ b/src/server/api/endpoints/admin/unverify-user.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
-import ID from '../../../../misc/cafy-id';
-import getParams from '../../get-params';
+import ID, { transform } from '../../../../misc/cafy-id';
+import define from '../../define';
import User from '../../../../models/user';
export const meta = {
@@ -13,19 +13,18 @@ export const meta = {
requireAdmin: true,
params: {
- userId: $.type(ID).note({
+ userId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のユーザーID',
'en-US': 'The user ID which you want to unverify'
}
- }),
+ },
}
};
-export default (params: any) => new Promise(async (res, rej) => {
- const [ps, psErr] = getParams(meta, params);
- if (psErr) return rej(psErr);
-
+export default define(meta, (ps) => new Promise(async (res, rej) => {
const user = await User.findOne({
_id: ps.userId
});
@@ -43,4 +42,4 @@ export default (params: any) => new Promise(async (res, rej) => {
});
res();
-});
+}));
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index f0ebfbe936..fdf03573a1 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
import Meta from '../../../../models/meta';
-import getParams from '../../get-params';
+import define from '../../define';
export const meta = {
desc: {
@@ -11,42 +11,44 @@ export const meta = {
requireAdmin: true,
params: {
- broadcasts: $.arr($.obj()).optional.nullable.note({
+ broadcasts: {
+ validator: $.arr($.obj()).optional.nullable,
desc: {
'ja-JP': 'ブロードキャスト'
}
- }),
+ },
- disableRegistration: $.bool.optional.nullable.note({
+ disableRegistration: {
+ validator: $.bool.optional.nullable,
desc: {
'ja-JP': '招待制か否か'
}
- }),
+ },
- disableLocalTimeline: $.bool.optional.nullable.note({
+ disableLocalTimeline: {
+ validator: $.bool.optional.nullable,
desc: {
'ja-JP': 'ローカルタイムライン(とソーシャルタイムライン)を無効にするか否か'
}
- }),
+ },
- hidedTags: $.arr($.str).optional.nullable.note({
+ hidedTags: {
+ validator: $.arr($.str).optional.nullable,
desc: {
'ja-JP': '統計などで無視するハッシュタグ'
}
- }),
+ },
- bannerUrl: $.str.optional.nullable.note({
+ bannerUrl: {
+ validator: $.str.optional.nullable,
desc: {
'ja-JP': 'インスタンスのバナー画像URL'
}
- }),
+ },
}
};
-export default (params: any) => new Promise(async (res, rej) => {
- const [ps, psErr] = getParams(meta, params);
- if (psErr) return rej(psErr);
-
+export default define(meta, (ps) => new Promise(async (res, rej) => {
const set = {} as any;
if (ps.broadcasts) {
@@ -74,4 +76,4 @@ export default (params: any) => new Promise(async (res, rej) => {
}, { upsert: true });
res();
-});
+}));
diff --git a/src/server/api/endpoints/admin/verify-user.ts b/src/server/api/endpoints/admin/verify-user.ts
index dd07684ded..09efc2e803 100644
--- a/src/server/api/endpoints/admin/verify-user.ts
+++ b/src/server/api/endpoints/admin/verify-user.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
-import ID from '../../../../misc/cafy-id';
-import getParams from '../../get-params';
+import ID, { transform } from '../../../../misc/cafy-id';
+import define from '../../define';
import User from '../../../../models/user';
export const meta = {
@@ -13,19 +13,18 @@ export const meta = {
requireAdmin: true,
params: {
- userId: $.type(ID).note({
+ userId: {
+ validator: $.type(ID),
+ transform: transform,
desc: {
'ja-JP': '対象のユーザーID',
'en-US': 'The user ID which you want to verify'
}
- }),
+ },
}
};
-export default (params: any) => new Promise(async (res, rej) => {
- const [ps, psErr] = getParams(meta, params);
- if (psErr) return rej(psErr);
-
+export default define(meta, (ps) => new Promise(async (res, rej) => {
const user = await User.findOne({
_id: ps.userId
});
@@ -43,4 +42,4 @@ export default (params: any) => new Promise(async (res, rej) => {
});
res();
-});
+}));