diff options
Diffstat (limited to 'src/server/api/endpoints/admin')
| -rw-r--r-- | src/server/api/endpoints/admin/emoji/add.ts | 39 | ||||
| -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 | 50 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/invite.ts | 5 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/suspend-user.ts | 17 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/unsuspend-user.ts | 17 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/unverify-user.ts | 17 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/update-meta.ts | 34 | ||||
| -rw-r--r-- | src/server/api/endpoints/admin/verify-user.ts | 17 |
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(); -}); +})); |