summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/app/create.ts4
-rw-r--r--src/server/api/endpoints/auth/accept.ts5
-rw-r--r--src/server/api/endpoints/drive.ts14
-rw-r--r--src/server/api/endpoints/drive/files.ts14
-rw-r--r--src/server/api/endpoints/drive/files/create.ts3
-rw-r--r--src/server/api/endpoints/drive/files/delete.ts14
-rw-r--r--src/server/api/endpoints/drive/files/find.ts9
-rw-r--r--src/server/api/endpoints/drive/files/show.ts14
-rw-r--r--src/server/api/endpoints/drive/files/update.ts14
-rw-r--r--src/server/api/endpoints/drive/files/upload_from_url.ts19
-rw-r--r--src/server/api/endpoints/drive/folders.ts14
-rw-r--r--src/server/api/endpoints/drive/folders/create.ts14
-rw-r--r--src/server/api/endpoints/drive/folders/find.ts9
-rw-r--r--src/server/api/endpoints/drive/folders/show.ts13
-rw-r--r--src/server/api/endpoints/drive/folders/update.ts14
-rw-r--r--src/server/api/endpoints/drive/stream.ts9
-rw-r--r--src/server/api/endpoints/following/create.ts20
-rw-r--r--src/server/api/endpoints/following/delete.ts20
-rw-r--r--src/server/api/endpoints/following/requests/accept.ts14
-rw-r--r--src/server/api/endpoints/following/requests/cancel.ts14
-rw-r--r--src/server/api/endpoints/following/requests/list.ts14
-rw-r--r--src/server/api/endpoints/following/requests/reject.ts14
-rw-r--r--src/server/api/endpoints/following/stalk.ts14
-rw-r--r--src/server/api/endpoints/following/unstalk.ts14
-rw-r--r--src/server/api/endpoints/games/reversi/games.ts4
-rw-r--r--src/server/api/endpoints/games/reversi/invitations.ts4
-rw-r--r--src/server/api/endpoints/games/reversi/match.ts4
-rw-r--r--src/server/api/endpoints/games/reversi/match/cancel.ts4
-rw-r--r--src/server/api/endpoints/i/2fa/done.ts5
-rw-r--r--src/server/api/endpoints/i/2fa/register.ts5
-rw-r--r--src/server/api/endpoints/i/2fa/unregister.ts5
-rw-r--r--src/server/api/endpoints/i/authorized_apps.ts8
-rw-r--r--src/server/api/endpoints/i/change_password.ts8
-rw-r--r--src/server/api/endpoints/i/favorites.ts14
-rw-r--r--src/server/api/endpoints/i/regenerate_token.ts8
-rw-r--r--src/server/api/endpoints/i/signin_history.ts8
-rw-r--r--src/server/api/endpoints/i/update.ts14
-rw-r--r--src/server/api/endpoints/i/update_client_setting.ts8
-rw-r--r--src/server/api/endpoints/i/update_home.ts5
-rw-r--r--src/server/api/endpoints/i/update_mobile_home.ts5
-rw-r--r--src/server/api/endpoints/i/update_widget.ts5
-rw-r--r--src/server/api/endpoints/messaging/history.ts14
-rw-r--r--src/server/api/endpoints/messaging/messages.ts14
-rw-r--r--src/server/api/endpoints/messaging/messages/create.ts14
-rw-r--r--src/server/api/endpoints/mute/create.ts14
-rw-r--r--src/server/api/endpoints/mute/delete.ts14
-rw-r--r--src/server/api/endpoints/mute/list.ts14
-rw-r--r--src/server/api/endpoints/my/apps.ts12
-rw-r--r--src/server/api/endpoints/notes/delete.ts14
-rw-r--r--src/server/api/endpoints/notes/favorites/create.ts14
-rw-r--r--src/server/api/endpoints/notes/favorites/delete.ts14
-rw-r--r--src/server/api/endpoints/notes/mentions.ts12
-rw-r--r--src/server/api/endpoints/notes/polls/recommendation.ts12
-rw-r--r--src/server/api/endpoints/notes/polls/vote.ts14
-rw-r--r--src/server/api/endpoints/notes/reactions.ts15
-rw-r--r--src/server/api/endpoints/notes/reactions/create.ts12
-rw-r--r--src/server/api/endpoints/notes/reactions/delete.ts14
-rw-r--r--src/server/api/endpoints/notes/trend.ts12
-rw-r--r--src/server/api/endpoints/notes/user-list-timeline.ts12
-rw-r--r--src/server/api/endpoints/notifications/mark_as_read_all.ts11
-rw-r--r--src/server/api/endpoints/sw/register.ts4
-rw-r--r--src/server/api/endpoints/users/lists/create.ts14
-rw-r--r--src/server/api/endpoints/users/lists/list.ts13
-rw-r--r--src/server/api/endpoints/users/lists/push.ts11
-rw-r--r--src/server/api/endpoints/users/lists/show.ts14
-rw-r--r--src/server/api/endpoints/users/recommendation.ts13
66 files changed, 586 insertions, 156 deletions
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index 3b3eafa699..82a2fcb55e 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -3,6 +3,10 @@ import $ from 'cafy';
import App, { isValidNameId, pack } from '../../../../models/app';
import { ILocalUser } from '../../../../models/user';
+export const meta = {
+ requireCredential: true
+};
+
/**
* @swagger
* /app/create:
diff --git a/src/server/api/endpoints/auth/accept.ts b/src/server/api/endpoints/auth/accept.ts
index d14c853415..2638ebc148 100644
--- a/src/server/api/endpoints/auth/accept.ts
+++ b/src/server/api/endpoints/auth/accept.ts
@@ -6,6 +6,11 @@ import AuthSess from '../../../../models/auth-session';
import AccessToken from '../../../../models/access-token';
import { ILocalUser } from '../../../../models/user';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
/**
* @swagger
* /auth/accept:
diff --git a/src/server/api/endpoints/drive.ts b/src/server/api/endpoints/drive.ts
index 66ac30c4cf..a98a3a5b87 100644
--- a/src/server/api/endpoints/drive.ts
+++ b/src/server/api/endpoints/drive.ts
@@ -1,9 +1,17 @@
import DriveFile from '../../../models/drive-file';
import { ILocalUser } from '../../../models/user';
-/**
- * Get drive information
- */
+export const meta = {
+ desc: {
+ ja: 'ドライブの情報を取得します。',
+ en: 'Get drive information.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Calculate drive usage
const usage = await DriveFile
diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts
index 000e4dcdd2..063b4adde1 100644
--- a/src/server/api/endpoints/drive/files.ts
+++ b/src/server/api/endpoints/drive/files.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import DriveFile, { pack } from '../../../../models/drive-file';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get drive files
- */
+export const meta = {
+ desc: {
+ ja: 'ドライブのファイル一覧を取得します。',
+ en: 'Get files of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts
index c5eb29e1af..ca12be9104 100644
--- a/src/server/api/endpoints/drive/files/create.ts
+++ b/src/server/api/endpoints/drive/files/create.ts
@@ -8,7 +8,8 @@ import getParams from '../../../get-params';
export const meta = {
desc: {
- ja: 'ドライブにファイルをアップロードします。'
+ ja: 'ドライブにファイルをアップロードします。',
+ en: 'Upload a file to drive.'
},
requireCredential: true,
diff --git a/src/server/api/endpoints/drive/files/delete.ts b/src/server/api/endpoints/drive/files/delete.ts
index 8a63be0e2f..02cd96dd8f 100644
--- a/src/server/api/endpoints/drive/files/delete.ts
+++ b/src/server/api/endpoints/drive/files/delete.ts
@@ -4,9 +4,17 @@ import del from '../../../../../services/drive/delete-file';
import { publishDriveStream } from '../../../../../stream';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Delete a file
- */
+export const meta = {
+ desc: {
+ ja: 'ドライブのファイルを削除します。',
+ en: 'Delete a file of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-write'
+};
+
export default async (params: any, user: ILocalUser) => {
// Get 'fileId' parameter
const [fileId, fileIdErr] = $.type(ID).get(params.fileId);
diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts
index 8b166e2dbc..aa44ee688e 100644
--- a/src/server/api/endpoints/drive/files/find.ts
+++ b/src/server/api/endpoints/drive/files/find.ts
@@ -2,9 +2,12 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import DriveFile, { pack } from '../../../../../models/drive-file';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Find a file(s)
- */
+export const meta = {
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter
const [name, nameErr] = $.str.get(params.name);
diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts
index 02faa6d5a7..6a66c7a272 100644
--- a/src/server/api/endpoints/drive/files/show.ts
+++ b/src/server/api/endpoints/drive/files/show.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import DriveFile, { pack } from '../../../../../models/drive-file';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Show a file
- */
+export const meta = {
+ desc: {
+ ja: '指定したドライブのファイルの情報を取得します。',
+ en: 'Get specified file of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default async (params: any, user: ILocalUser) => {
// Get 'fileId' parameter
const [fileId, fileIdErr] = $.type(ID).get(params.fileId);
diff --git a/src/server/api/endpoints/drive/files/update.ts b/src/server/api/endpoints/drive/files/update.ts
index 95dd6c2acc..396bc97694 100644
--- a/src/server/api/endpoints/drive/files/update.ts
+++ b/src/server/api/endpoints/drive/files/update.ts
@@ -4,9 +4,17 @@ import DriveFile, { validateFileName, pack } from '../../../../../models/drive-f
import { publishDriveStream } from '../../../../../stream';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Update a file
- */
+export const meta = {
+ desc: {
+ ja: '指定したドライブのファイルの情報を更新します。',
+ en: 'Update specified file of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'fileId' parameter
const [fileId, fileIdErr] = $.type(ID).get(params.fileId);
diff --git a/src/server/api/endpoints/drive/files/upload_from_url.ts b/src/server/api/endpoints/drive/files/upload_from_url.ts
index 4af365c394..d634cf46db 100644
--- a/src/server/api/endpoints/drive/files/upload_from_url.ts
+++ b/src/server/api/endpoints/drive/files/upload_from_url.ts
@@ -1,11 +1,24 @@
-/**
- * Module dependencies
- */
import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
+const ms = require('ms');
import { pack } from '../../../../../models/drive-file';
import uploadFromUrl from '../../../../../services/drive/upload-from-url';
import { ILocalUser } from '../../../../../models/user';
+export const meta = {
+ desc: {
+ ja: 'ドライブに指定されたURLに存在するファイルをアップロードします。'
+ },
+
+ limit: {
+ duration: ms('1hour'),
+ max: 10
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-write'
+};
+
/**
* Create a file from a URL
*/
diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts
index f1817ec42f..de398eb720 100644
--- a/src/server/api/endpoints/drive/folders.ts
+++ b/src/server/api/endpoints/drive/folders.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import DriveFolder, { pack } from '../../../../models/drive-folder';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get drive folders
- */
+export const meta = {
+ desc: {
+ ja: 'ドライブのフォルダ一覧を取得します。',
+ en: 'Get folders of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/drive/folders/create.ts b/src/server/api/endpoints/drive/folders/create.ts
index 6205691e15..03f9504774 100644
--- a/src/server/api/endpoints/drive/folders/create.ts
+++ b/src/server/api/endpoints/drive/folders/create.ts
@@ -3,9 +3,17 @@ import DriveFolder, { isValidFolderName, pack } from '../../../../../models/driv
import { publishDriveStream } from '../../../../../stream';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Create drive folder
- */
+export const meta = {
+ desc: {
+ ja: 'ドライブのフォルダを作成します。',
+ en: 'Create a folder of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter
const [name = '無題のフォルダー', nameErr] = $.str.optional.pipe(isValidFolderName).get(params.name);
diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts
index 64065d9379..ec3c1d2e36 100644
--- a/src/server/api/endpoints/drive/folders/find.ts
+++ b/src/server/api/endpoints/drive/folders/find.ts
@@ -2,9 +2,12 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import DriveFolder, { pack } from '../../../../../models/drive-folder';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Find a folder(s)
- */
+export const meta = {
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter
const [name, nameErr] = $.str.get(params.name);
diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts
index 5f56606215..6a6c879a01 100644
--- a/src/server/api/endpoints/drive/folders/show.ts
+++ b/src/server/api/endpoints/drive/folders/show.ts
@@ -2,9 +2,16 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import DriveFolder, { pack } from '../../../../../models/drive-folder';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Show a folder
- */
+export const meta = {
+ desc: {
+ ja: '指定したドライブのフォルダの情報を取得します。'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'folderId' parameter
const [folderId, folderIdErr] = $.type(ID).get(params.folderId);
diff --git a/src/server/api/endpoints/drive/folders/update.ts b/src/server/api/endpoints/drive/folders/update.ts
index b833655974..1b449428a6 100644
--- a/src/server/api/endpoints/drive/folders/update.ts
+++ b/src/server/api/endpoints/drive/folders/update.ts
@@ -3,9 +3,17 @@ import DriveFolder, { isValidFolderName, pack } from '../../../../../models/driv
import { publishDriveStream } from '../../../../../stream';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Update a folder
- */
+export const meta = {
+ desc: {
+ ja: '指定したドライブのフォルダの情報を更新します。',
+ en: 'Update specified folder of drive.'
+ },
+
+ requireCredential: true,
+
+ kind: 'drive-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'folderId' parameter
const [folderId, folderIdErr] = $.type(ID).get(params.folderId);
diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts
index 39c878a1f8..53f94a2639 100644
--- a/src/server/api/endpoints/drive/stream.ts
+++ b/src/server/api/endpoints/drive/stream.ts
@@ -2,9 +2,12 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import DriveFile, { pack } from '../../../../models/drive-file';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get drive stream
- */
+export const meta = {
+ requireCredential: true,
+
+ kind: 'drive-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/following/create.ts b/src/server/api/endpoints/following/create.ts
index a902af023f..ebe319e0cf 100644
--- a/src/server/api/endpoints/following/create.ts
+++ b/src/server/api/endpoints/following/create.ts
@@ -1,11 +1,25 @@
import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
+const ms = require('ms');
import User, { pack, ILocalUser } from '../../../../models/user';
import Following from '../../../../models/following';
import create from '../../../../services/following/create';
-/**
- * Follow a user
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーをフォローします。',
+ en: 'Follow a user.'
+ },
+
+ limit: {
+ duration: ms('1hour'),
+ max: 100
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user;
diff --git a/src/server/api/endpoints/following/delete.ts b/src/server/api/endpoints/following/delete.ts
index f1d29e80b2..4806fe4e39 100644
--- a/src/server/api/endpoints/following/delete.ts
+++ b/src/server/api/endpoints/following/delete.ts
@@ -1,11 +1,25 @@
import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
+const ms = require('ms');
import User, { pack, ILocalUser } from '../../../../models/user';
import Following from '../../../../models/following';
import deleteFollowing from '../../../../services/following/delete';
-/**
- * Unfollow a user
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーのフォローを解除します。',
+ en: 'Unfollow a user.'
+ },
+
+ limit: {
+ duration: ms('1hour'),
+ max: 100
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user;
diff --git a/src/server/api/endpoints/following/requests/accept.ts b/src/server/api/endpoints/following/requests/accept.ts
index 49c29160b1..b3bf2dd667 100644
--- a/src/server/api/endpoints/following/requests/accept.ts
+++ b/src/server/api/endpoints/following/requests/accept.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import acceptFollowRequest from '../../../../../services/following/requests/accept';
import User, { ILocalUser } from '../../../../../models/user';
-/**
- * Accept a follow request
- */
+export const meta = {
+ desc: {
+ ja: '自分に届いた、指定したフォローリクエストを承認します。',
+ en: 'Accept a follow request.'
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter
const [followerId, followerIdErr] = $.type(ID).get(params.userId);
diff --git a/src/server/api/endpoints/following/requests/cancel.ts b/src/server/api/endpoints/following/requests/cancel.ts
index 6c3539d757..9bfc40ce65 100644
--- a/src/server/api/endpoints/following/requests/cancel.ts
+++ b/src/server/api/endpoints/following/requests/cancel.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import cancelFollowRequest from '../../../../../services/following/requests/cancel';
import User, { pack, ILocalUser } from '../../../../../models/user';
-/**
- * Cancel a follow request
- */
+export const meta = {
+ desc: {
+ ja: '自分が作成した、指定したフォローリクエストをキャンセルします。',
+ en: 'Cancel a follow request.'
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter
const [followeeId, followeeIdErr] = $.type(ID).get(params.userId);
diff --git a/src/server/api/endpoints/following/requests/list.ts b/src/server/api/endpoints/following/requests/list.ts
index dfe9858f3a..b06a158c08 100644
--- a/src/server/api/endpoints/following/requests/list.ts
+++ b/src/server/api/endpoints/following/requests/list.ts
@@ -2,9 +2,17 @@
import FollowRequest, { pack } from '../../../../../models/follow-request';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Get all pending received follow requests
- */
+export const meta = {
+ desc: {
+ ja: '自分に届いたフォローリクエストの一覧を取得します。',
+ en: 'Get all pending received follow requests.'
+ },
+
+ requireCredential: true,
+
+ kind: 'following-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const reqs = await FollowRequest.find({
followeeId: user._id
diff --git a/src/server/api/endpoints/following/requests/reject.ts b/src/server/api/endpoints/following/requests/reject.ts
index f92ea52d46..a232549bb8 100644
--- a/src/server/api/endpoints/following/requests/reject.ts
+++ b/src/server/api/endpoints/following/requests/reject.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import rejectFollowRequest from '../../../../../services/following/requests/reject';
import User, { ILocalUser } from '../../../../../models/user';
-/**
- * Reject a follow request
- */
+export const meta = {
+ desc: {
+ ja: '自分に届いた、指定したフォローリクエストを拒否します。',
+ en: 'Reject a follow request.'
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter
const [followerId, followerIdErr] = $.type(ID).get(params.userId);
diff --git a/src/server/api/endpoints/following/stalk.ts b/src/server/api/endpoints/following/stalk.ts
index eb4afb3116..79a3fb976c 100644
--- a/src/server/api/endpoints/following/stalk.ts
+++ b/src/server/api/endpoints/following/stalk.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import Following from '../../../../models/following';
import { ILocalUser } from '../../../../models/user';
-/**
- * Stalk a user
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーをストーキングします。',
+ en: 'Stalk a user.'
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user;
diff --git a/src/server/api/endpoints/following/unstalk.ts b/src/server/api/endpoints/following/unstalk.ts
index b44ef68b96..71a7a97eeb 100644
--- a/src/server/api/endpoints/following/unstalk.ts
+++ b/src/server/api/endpoints/following/unstalk.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import Following from '../../../../models/following';
import { ILocalUser } from '../../../../models/user';
-/**
- * Unstalk a user
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーのストーキングをやめます。',
+ en: 'Unstalk a user.'
+ },
+
+ requireCredential: true,
+
+ kind: 'following-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const follower = user;
diff --git a/src/server/api/endpoints/games/reversi/games.ts b/src/server/api/endpoints/games/reversi/games.ts
index 50a8faa88c..b72af06d22 100644
--- a/src/server/api/endpoints/games/reversi/games.ts
+++ b/src/server/api/endpoints/games/reversi/games.ts
@@ -2,6 +2,10 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import ReversiGame, { pack } from '../../../../../models/games/reversi/game';
import { ILocalUser } from '../../../../../models/user';
+export const meta = {
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'my' parameter
const [my = false, myErr] = $.bool.optional.get(params.my);
diff --git a/src/server/api/endpoints/games/reversi/invitations.ts b/src/server/api/endpoints/games/reversi/invitations.ts
index c6d0ecfa73..3962282759 100644
--- a/src/server/api/endpoints/games/reversi/invitations.ts
+++ b/src/server/api/endpoints/games/reversi/invitations.ts
@@ -1,6 +1,10 @@
import Matching, { pack as packMatching } from '../../../../../models/games/reversi/matching';
import { ILocalUser } from '../../../../../models/user';
+export const meta = {
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Find session
const invitations = await Matching.find({
diff --git a/src/server/api/endpoints/games/reversi/match.ts b/src/server/api/endpoints/games/reversi/match.ts
index 4364531516..24746170ff 100644
--- a/src/server/api/endpoints/games/reversi/match.ts
+++ b/src/server/api/endpoints/games/reversi/match.ts
@@ -5,6 +5,10 @@ import User, { ILocalUser } from '../../../../../models/user';
import publishUserStream, { publishReversiStream } from '../../../../../stream';
import { eighteight } from '../../../../../games/reversi/maps';
+export const meta = {
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter
const [childId, childIdErr] = $.type(ID).get(params.userId);
diff --git a/src/server/api/endpoints/games/reversi/match/cancel.ts b/src/server/api/endpoints/games/reversi/match/cancel.ts
index 84cd1ff119..d5c186409c 100644
--- a/src/server/api/endpoints/games/reversi/match/cancel.ts
+++ b/src/server/api/endpoints/games/reversi/match/cancel.ts
@@ -1,6 +1,10 @@
import Matching from '../../../../../../models/games/reversi/matching';
import { ILocalUser } from '../../../../../../models/user';
+export const meta = {
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
await Matching.remove({
parentId: user._id
diff --git a/src/server/api/endpoints/i/2fa/done.ts b/src/server/api/endpoints/i/2fa/done.ts
index fef045948a..6d38ca1de1 100644
--- a/src/server/api/endpoints/i/2fa/done.ts
+++ b/src/server/api/endpoints/i/2fa/done.ts
@@ -2,6 +2,11 @@ import $ from 'cafy';
import * as speakeasy from 'speakeasy';
import User, { ILocalUser } from '../../../../../models/user';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'token' parameter
const [token, tokenErr] = $.str.get(params.token);
diff --git a/src/server/api/endpoints/i/2fa/register.ts b/src/server/api/endpoints/i/2fa/register.ts
index ac703f5b0a..0466a4f366 100644
--- a/src/server/api/endpoints/i/2fa/register.ts
+++ b/src/server/api/endpoints/i/2fa/register.ts
@@ -5,6 +5,11 @@ import * as QRCode from 'qrcode';
import User, { ILocalUser } from '../../../../../models/user';
import config from '../../../../../config';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password);
diff --git a/src/server/api/endpoints/i/2fa/unregister.ts b/src/server/api/endpoints/i/2fa/unregister.ts
index 7d99ee397d..accf3ea0f2 100644
--- a/src/server/api/endpoints/i/2fa/unregister.ts
+++ b/src/server/api/endpoints/i/2fa/unregister.ts
@@ -2,6 +2,11 @@ import $ from 'cafy';
import * as bcrypt from 'bcryptjs';
import User, { ILocalUser } from '../../../../../models/user';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password);
diff --git a/src/server/api/endpoints/i/authorized_apps.ts b/src/server/api/endpoints/i/authorized_apps.ts
index 24c4b58f7f..313bb474f4 100644
--- a/src/server/api/endpoints/i/authorized_apps.ts
+++ b/src/server/api/endpoints/i/authorized_apps.ts
@@ -3,9 +3,11 @@ import AccessToken from '../../../../models/access-token';
import { pack } from '../../../../models/app';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get authorized apps of my account
- */
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/i/change_password.ts b/src/server/api/endpoints/i/change_password.ts
index 698db5a6e4..dc0f060c08 100644
--- a/src/server/api/endpoints/i/change_password.ts
+++ b/src/server/api/endpoints/i/change_password.ts
@@ -2,9 +2,11 @@ import $ from 'cafy';
import * as bcrypt from 'bcryptjs';
import User, { ILocalUser } from '../../../../models/user';
-/**
- * Change password
- */
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'currentPasword' parameter
const [currentPassword, currentPasswordErr] = $.str.get(params.currentPasword);
diff --git a/src/server/api/endpoints/i/favorites.ts b/src/server/api/endpoints/i/favorites.ts
index d37632822a..47c8a87fd9 100644
--- a/src/server/api/endpoints/i/favorites.ts
+++ b/src/server/api/endpoints/i/favorites.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import Favorite, { pack } from '../../../../models/favorite';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get favorited notes
- */
+export const meta = {
+ desc: {
+ ja: 'お気に入りに登録した投稿一覧を取得します。',
+ en: 'Get favorited notes'
+ },
+
+ requireCredential: true,
+
+ kind: 'favorites-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/i/regenerate_token.ts b/src/server/api/endpoints/i/regenerate_token.ts
index 5c30c4f496..374861daaf 100644
--- a/src/server/api/endpoints/i/regenerate_token.ts
+++ b/src/server/api/endpoints/i/regenerate_token.ts
@@ -4,9 +4,11 @@ import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../stream';
import generateUserToken from '../../common/generate-native-user-token';
-/**
- * Regenerate native token
- */
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'password' parameter
const [password, passwordErr] = $.str.get(params.password);
diff --git a/src/server/api/endpoints/i/signin_history.ts b/src/server/api/endpoints/i/signin_history.ts
index a99a9e81ec..5a3c122f3a 100644
--- a/src/server/api/endpoints/i/signin_history.ts
+++ b/src/server/api/endpoints/i/signin_history.ts
@@ -2,9 +2,11 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import Signin, { pack } from '../../../../models/signin';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get signin history of my account
- */
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/i/update.ts b/src/server/api/endpoints/i/update.ts
index 6d6cf3e4c5..4002bcdc39 100644
--- a/src/server/api/endpoints/i/update.ts
+++ b/src/server/api/endpoints/i/update.ts
@@ -5,9 +5,17 @@ import DriveFile from '../../../../models/drive-file';
import acceptAllFollowRequests from '../../../../services/following/requests/accept-all';
import { IApp } from '../../../../models/app';
-/**
- * Update myself
- */
+export const meta = {
+ desc: {
+ ja: 'アカウント情報を更新します。',
+ en: 'Update myself'
+ },
+
+ requireCredential: true,
+
+ kind: 'account-write'
+};
+
export default async (params: any, user: ILocalUser, app: IApp) => new Promise(async (res, rej) => {
const isSecure = user != null && app == null;
diff --git a/src/server/api/endpoints/i/update_client_setting.ts b/src/server/api/endpoints/i/update_client_setting.ts
index affaee37ee..9342f5dadc 100644
--- a/src/server/api/endpoints/i/update_client_setting.ts
+++ b/src/server/api/endpoints/i/update_client_setting.ts
@@ -2,9 +2,11 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../stream';
-/**
- * Update myself
- */
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'name' parameter
const [name, nameErr] = $.str.get(params.name);
diff --git a/src/server/api/endpoints/i/update_home.ts b/src/server/api/endpoints/i/update_home.ts
index c41ae7b3e8..6f39854290 100644
--- a/src/server/api/endpoints/i/update_home.ts
+++ b/src/server/api/endpoints/i/update_home.ts
@@ -2,6 +2,11 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../stream';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'home' parameter
const [home, homeErr] = $.arr($.obj({
diff --git a/src/server/api/endpoints/i/update_mobile_home.ts b/src/server/api/endpoints/i/update_mobile_home.ts
index ca61e52600..1babe409e9 100644
--- a/src/server/api/endpoints/i/update_mobile_home.ts
+++ b/src/server/api/endpoints/i/update_mobile_home.ts
@@ -2,6 +2,11 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../stream';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'home' parameter
const [home, homeErr] = $.arr($.obj({
diff --git a/src/server/api/endpoints/i/update_widget.ts b/src/server/api/endpoints/i/update_widget.ts
index a413ca7e9b..5bf9c23053 100644
--- a/src/server/api/endpoints/i/update_widget.ts
+++ b/src/server/api/endpoints/i/update_widget.ts
@@ -2,6 +2,11 @@ import $ from 'cafy';
import User, { ILocalUser } from '../../../../models/user';
import event from '../../../../stream';
+export const meta = {
+ requireCredential: true,
+ secure: true
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'id' parameter
const [id, idErr] = $.str.get(params.id);
diff --git a/src/server/api/endpoints/messaging/history.ts b/src/server/api/endpoints/messaging/history.ts
index a1bd015864..66798d50c5 100644
--- a/src/server/api/endpoints/messaging/history.ts
+++ b/src/server/api/endpoints/messaging/history.ts
@@ -4,9 +4,17 @@ import Mute from '../../../../models/mute';
import { pack } from '../../../../models/messaging-message';
import { ILocalUser } from '../../../../models/user';
-/**
- * Show messaging history
- */
+export const meta = {
+ desc: {
+ ja: 'Messagingの履歴を取得します。',
+ en: 'Show messaging history.'
+ },
+
+ requireCredential: true,
+
+ kind: 'messaging-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts
index 083fcd83f5..84c28dc0c1 100644
--- a/src/server/api/endpoints/messaging/messages.ts
+++ b/src/server/api/endpoints/messaging/messages.ts
@@ -4,9 +4,17 @@ import User, { ILocalUser } from '../../../../models/user';
import { pack } from '../../../../models/messaging-message';
import read from '../../common/read-messaging-message';
-/**
- * Get messages
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーとのMessagingのメッセージ一覧を取得します。',
+ en: 'Get messages of messaging.'
+ },
+
+ requireCredential: true,
+
+ kind: 'messaging-read'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter
const [recipientId, recipientIdErr] = $.type(ID).get(params.userId);
diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/src/server/api/endpoints/messaging/messages/create.ts
index c3d9824d69..9b897b45e7 100644
--- a/src/server/api/endpoints/messaging/messages/create.ts
+++ b/src/server/api/endpoints/messaging/messages/create.ts
@@ -11,9 +11,17 @@ import { publishMessagingStream, publishMessagingIndexStream } from '../../../..
import pushSw from '../../../../../push-sw';
import config from '../../../../../config';
-/**
- * Create a message
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーへMessagingのメッセージを送信します。',
+ en: 'Create a message of messaging.'
+ },
+
+ requireCredential: true,
+
+ kind: 'messaging-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'userId' parameter
const [recipientId, recipientIdErr] = $.type(ID).get(params.userId);
diff --git a/src/server/api/endpoints/mute/create.ts b/src/server/api/endpoints/mute/create.ts
index 3e766bf170..bd70cd62ef 100644
--- a/src/server/api/endpoints/mute/create.ts
+++ b/src/server/api/endpoints/mute/create.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import User, { ILocalUser } from '../../../../models/user';
import Mute from '../../../../models/mute';
-/**
- * Mute a user
- */
+export const meta = {
+ desc: {
+ ja: 'ユーザーをミュートします。',
+ en: 'Mute a user'
+ },
+
+ requireCredential: true,
+
+ kind: 'account/write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const muter = user;
diff --git a/src/server/api/endpoints/mute/delete.ts b/src/server/api/endpoints/mute/delete.ts
index 057baed2be..3187c46f83 100644
--- a/src/server/api/endpoints/mute/delete.ts
+++ b/src/server/api/endpoints/mute/delete.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../misc/cafy-id';
import User, { ILocalUser } from '../../../../models/user';
import Mute from '../../../../models/mute';
-/**
- * Unmute a user
- */
+export const meta = {
+ desc: {
+ ja: 'ユーザーのミュートを解除します。',
+ en: 'Unmute a user'
+ },
+
+ requireCredential: true,
+
+ kind: 'account/write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const muter = user;
diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts
index 54ca84c61d..e297605338 100644
--- a/src/server/api/endpoints/mute/list.ts
+++ b/src/server/api/endpoints/mute/list.ts
@@ -3,9 +3,17 @@ import Mute from '../../../../models/mute';
import { pack, ILocalUser } from '../../../../models/user';
import { getFriendIds } from '../../common/get-friends';
-/**
- * Get muted users of a user
- */
+export const meta = {
+ desc: {
+ ja: 'ミュートしているユーザー一覧を取得します。',
+ en: 'Get muted users.'
+ },
+
+ requireCredential: true,
+
+ kind: 'account/read'
+};
+
export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'iknow' parameter
const [iknow = false, iknowErr] = $.bool.optional.get(params.iknow);
diff --git a/src/server/api/endpoints/my/apps.ts b/src/server/api/endpoints/my/apps.ts
index 8e946c9466..35185db41d 100644
--- a/src/server/api/endpoints/my/apps.ts
+++ b/src/server/api/endpoints/my/apps.ts
@@ -2,9 +2,15 @@ import $ from 'cafy';
import App, { pack } from '../../../../models/app';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get my apps
- */
+export const meta = {
+ desc: {
+ ja: '自分のアプリケーション一覧を取得します。',
+ en: 'Get my apps'
+ },
+
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/notes/delete.ts b/src/server/api/endpoints/notes/delete.ts
index bebf7b2035..22c6101e14 100644
--- a/src/server/api/endpoints/notes/delete.ts
+++ b/src/server/api/endpoints/notes/delete.ts
@@ -3,9 +3,17 @@ import Note from '../../../../models/note';
import deleteNote from '../../../../services/note/delete';
import { ILocalUser } from '../../../../models/user';
-/**
- * Delete a note
- */
+export const meta = {
+ desc: {
+ ja: '指定した投稿を削除します。',
+ en: 'Delete a note.'
+ },
+
+ requireCredential: true,
+
+ kind: 'note-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
diff --git a/src/server/api/endpoints/notes/favorites/create.ts b/src/server/api/endpoints/notes/favorites/create.ts
index 280283d340..87f6cf1f08 100644
--- a/src/server/api/endpoints/notes/favorites/create.ts
+++ b/src/server/api/endpoints/notes/favorites/create.ts
@@ -3,9 +3,17 @@ import Favorite from '../../../../../models/favorite';
import Note from '../../../../../models/note';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Favorite a note
- */
+export const meta = {
+ desc: {
+ ja: '指定した投稿をお気に入りに登録します。',
+ en: 'Favorite a note.'
+ },
+
+ requireCredential: true,
+
+ kind: 'favorite-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
diff --git a/src/server/api/endpoints/notes/favorites/delete.ts b/src/server/api/endpoints/notes/favorites/delete.ts
index 2cd00f876b..3906fe99bb 100644
--- a/src/server/api/endpoints/notes/favorites/delete.ts
+++ b/src/server/api/endpoints/notes/favorites/delete.ts
@@ -3,9 +3,17 @@ import Favorite from '../../../../../models/favorite';
import Note from '../../../../../models/note';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Unfavorite a note
- */
+export const meta = {
+ desc: {
+ ja: '指定した投稿のお気に入りを解除します。',
+ en: 'Unfavorite a note.'
+ },
+
+ requireCredential: true,
+
+ kind: 'favorite-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts
index c4e420602f..db91230a81 100644
--- a/src/server/api/endpoints/notes/mentions.ts
+++ b/src/server/api/endpoints/notes/mentions.ts
@@ -4,9 +4,15 @@ import { getFriendIds } from '../../common/get-friends';
import { pack } from '../../../../models/note';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get mentions of myself
- */
+export const meta = {
+ desc: {
+ ja: '自分に言及している投稿の一覧を取得します。',
+ en: 'Get mentions of myself.'
+ },
+
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'following' parameter
const [following = false, followingError] =
diff --git a/src/server/api/endpoints/notes/polls/recommendation.ts b/src/server/api/endpoints/notes/polls/recommendation.ts
index f448bb66fc..a0469d1870 100644
--- a/src/server/api/endpoints/notes/polls/recommendation.ts
+++ b/src/server/api/endpoints/notes/polls/recommendation.ts
@@ -3,9 +3,15 @@ import Vote from '../../../../../models/poll-vote';
import Note, { pack } from '../../../../../models/note';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Get recommended polls
- */
+export const meta = {
+ desc: {
+ ja: 'おすすめのアンケート一覧を取得します。',
+ en: 'Get recommended polls.'
+ },
+
+ requireCredential: true,
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/notes/polls/vote.ts b/src/server/api/endpoints/notes/polls/vote.ts
index 026caa0b4e..568c187f8a 100644
--- a/src/server/api/endpoints/notes/polls/vote.ts
+++ b/src/server/api/endpoints/notes/polls/vote.ts
@@ -7,9 +7,17 @@ import { publishNoteStream } from '../../../../../stream';
import notify from '../../../../../notify';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Vote poll of a note
- */
+export const meta = {
+ desc: {
+ ja: '指定した投稿のアンケートに投票します。',
+ en: 'Vote poll of a note.'
+ },
+
+ requireCredential: true,
+
+ kind: 'vote-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts
index 938ed6f514..8921c55916 100644
--- a/src/server/api/endpoints/notes/reactions.ts
+++ b/src/server/api/endpoints/notes/reactions.ts
@@ -3,9 +3,15 @@ import Note from '../../../../models/note';
import Reaction, { pack } from '../../../../models/note-reaction';
import { ILocalUser } from '../../../../models/user';
-/**
- * Show reactions of a note
- */
+export const meta = {
+ desc: {
+ ja: '指定した投稿のリアクション一覧を取得します。',
+ en: 'Show reactions of a note.'
+ },
+
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
@@ -46,6 +52,5 @@ export default (params: any, user: ILocalUser) => new Promise(async (res, rej) =
});
// Serialize
- res(await Promise.all(reactions.map(async reaction =>
- await pack(reaction, user))));
+ res(await Promise.all(reactions.map(reaction => pack(reaction, user))));
});
diff --git a/src/server/api/endpoints/notes/reactions/create.ts b/src/server/api/endpoints/notes/reactions/create.ts
index f290ab00b4..65e24e7c06 100644
--- a/src/server/api/endpoints/notes/reactions/create.ts
+++ b/src/server/api/endpoints/notes/reactions/create.ts
@@ -6,12 +6,15 @@ import { ILocalUser } from '../../../../../models/user';
import getParams from '../../../get-params';
export const meta = {
- name: 'notes/reactions/create',
-
desc: {
- ja: '投稿にリアクションします。'
+ ja: '指定した投稿にリアクションします。',
+ en: 'React to a note.'
},
+ requireCredential: true,
+
+ kind: 'reaction-write',
+
params: {
noteId: $.type(ID).note({
desc: {
@@ -27,9 +30,6 @@ export const meta = {
}
};
-/**
- * React to a note
- */
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
const [ps, psErr] = getParams(meta, params);
if (psErr) return rej(psErr);
diff --git a/src/server/api/endpoints/notes/reactions/delete.ts b/src/server/api/endpoints/notes/reactions/delete.ts
index 6f662526d0..62af0407bc 100644
--- a/src/server/api/endpoints/notes/reactions/delete.ts
+++ b/src/server/api/endpoints/notes/reactions/delete.ts
@@ -3,9 +3,17 @@ import Reaction from '../../../../../models/note-reaction';
import Note from '../../../../../models/note';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Unreact to a note
- */
+export const meta = {
+ desc: {
+ ja: '指定した投稿へのリアクションを取り消します。',
+ en: 'Unreact to a note.'
+ },
+
+ requireCredential: true,
+
+ kind: 'reaction-write'
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'noteId' parameter
const [noteId, noteIdErr] = $.type(ID).get(params.noteId);
diff --git a/src/server/api/endpoints/notes/trend.ts b/src/server/api/endpoints/notes/trend.ts
index ae66234c0b..1cbbfacadc 100644
--- a/src/server/api/endpoints/notes/trend.ts
+++ b/src/server/api/endpoints/notes/trend.ts
@@ -3,9 +3,15 @@ import $ from 'cafy';
import Note, { pack } from '../../../../models/note';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get trend notes
- */
+export const meta = {
+ desc: {
+ ja: '人気の投稿の一覧を取得します。',
+ en: 'Get trend notes.'
+ },
+
+ requireCredential: true
+};
+
export default (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts
index ef08f69c10..5837a9a301 100644
--- a/src/server/api/endpoints/notes/user-list-timeline.ts
+++ b/src/server/api/endpoints/notes/user-list-timeline.ts
@@ -5,9 +5,15 @@ import { pack } from '../../../../models/note';
import UserList from '../../../../models/user-list';
import { ILocalUser } from '../../../../models/user';
-/**
- * Get timeline of a user list
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーリストのタイムラインを取得します。',
+ en: 'Get timeline of a user list.'
+ },
+
+ requireCredential: true
+};
+
export default async (params: any, user: ILocalUser) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);
diff --git a/src/server/api/endpoints/notifications/mark_as_read_all.ts b/src/server/api/endpoints/notifications/mark_as_read_all.ts
index 5011c72d54..7cf4cd16e9 100644
--- a/src/server/api/endpoints/notifications/mark_as_read_all.ts
+++ b/src/server/api/endpoints/notifications/mark_as_read_all.ts
@@ -2,6 +2,17 @@ import Notification from '../../../../models/notification';
import event from '../../../../stream';
import User, { ILocalUser } from '../../../../models/user';
+export const meta = {
+ desc: {
+ ja: '全ての通知を既読にします。',
+ en: 'Mark as read all notifications.'
+ },
+
+ requireCredential: true,
+
+ kind: 'notification-write'
+};
+
/**
* Mark as read all notifications
*/
diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts
index c7bf1bfbe5..3414600048 100644
--- a/src/server/api/endpoints/sw/register.ts
+++ b/src/server/api/endpoints/sw/register.ts
@@ -2,6 +2,10 @@ import $ from 'cafy';
import Subscription from '../../../../models/sw-subscription';
import { ILocalUser } from '../../../../models/user';
+export const meta = {
+ requireCredential: true
+};
+
/**
* subscribe service worker
*/
diff --git a/src/server/api/endpoints/users/lists/create.ts b/src/server/api/endpoints/users/lists/create.ts
index f3776afee0..d7dc2a5f70 100644
--- a/src/server/api/endpoints/users/lists/create.ts
+++ b/src/server/api/endpoints/users/lists/create.ts
@@ -2,9 +2,17 @@ import $ from 'cafy';
import UserList, { pack } from '../../../../../models/user-list';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Create a user list
- */
+export const meta = {
+ desc: {
+ ja: 'ユーザーリストを作成します。',
+ en: 'Create a user list'
+ },
+
+ requireCredential: true,
+
+ kind: 'account-write'
+};
+
export default async (params: any, user: ILocalUser) => new Promise(async (res, rej) => {
// Get 'title' parameter
const [title, titleErr] = $.str.range(1, 100).get(params.title);
diff --git a/src/server/api/endpoints/users/lists/list.ts b/src/server/api/endpoints/users/lists/list.ts
index 88fa75a111..31fef26bdc 100644
--- a/src/server/api/endpoints/users/lists/list.ts
+++ b/src/server/api/endpoints/users/lists/list.ts
@@ -1,9 +1,16 @@
import UserList, { pack } from '../../../../../models/user-list';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Add a user to a user list
- */
+export const meta = {
+ desc: {
+ ja: '自分の作成したユーザーリスト一覧を取得します。'
+ },
+
+ requireCredential: true,
+
+ kind: 'account-read'
+};
+
export default async (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Fetch lists
const userLists = await UserList.find({
diff --git a/src/server/api/endpoints/users/lists/push.ts b/src/server/api/endpoints/users/lists/push.ts
index 9e99d59fc1..bd4e201bde 100644
--- a/src/server/api/endpoints/users/lists/push.ts
+++ b/src/server/api/endpoints/users/lists/push.ts
@@ -6,6 +6,17 @@ import ap from '../../../../../remote/activitypub/renderer';
import renderFollow from '../../../../../remote/activitypub/renderer/follow';
import { deliver } from '../../../../../queue';
+export const meta = {
+ desc: {
+ ja: '指定したユーザーリストに指定したユーザーを追加します。',
+ en: 'Add a user to a user list.'
+ },
+
+ requireCredential: true,
+
+ kind: 'account-write'
+};
+
/**
* Add a user to a user list
*/
diff --git a/src/server/api/endpoints/users/lists/show.ts b/src/server/api/endpoints/users/lists/show.ts
index f432cf44fb..2fd142a609 100644
--- a/src/server/api/endpoints/users/lists/show.ts
+++ b/src/server/api/endpoints/users/lists/show.ts
@@ -2,9 +2,17 @@ import $ from 'cafy'; import ID from '../../../../../misc/cafy-id';
import UserList, { pack } from '../../../../../models/user-list';
import { ILocalUser } from '../../../../../models/user';
-/**
- * Show a user list
- */
+export const meta = {
+ desc: {
+ ja: '指定したユーザーリストの情報を取得します。',
+ en: 'Show a user list.'
+ },
+
+ requireCredential: true,
+
+ kind: 'account-read'
+};
+
export default async (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'listId' parameter
const [listId, listIdErr] = $.type(ID).get(params.listId);
diff --git a/src/server/api/endpoints/users/recommendation.ts b/src/server/api/endpoints/users/recommendation.ts
index b7402b7fb1..13377e6fff 100644
--- a/src/server/api/endpoints/users/recommendation.ts
+++ b/src/server/api/endpoints/users/recommendation.ts
@@ -4,9 +4,16 @@ import User, { pack, ILocalUser } from '../../../../models/user';
import { getFriendIds } from '../../common/get-friends';
import Mute from '../../../../models/mute';
-/**
- * Get recommended users
- */
+export const meta = {
+ desc: {
+ ja: 'おすすめのユーザー一覧を取得します。'
+ },
+
+ requireCredential: true,
+
+ kind: 'account-read'
+};
+
export default (params: any, me: ILocalUser) => new Promise(async (res, rej) => {
// Get 'limit' parameter
const [limit = 10, limitErr] = $.num.optional.range(1, 100).get(params.limit);