summaryrefslogtreecommitdiff
path: root/src/server/api/endpoints
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2019-04-24 15:23:48 +0900
committersyuilo <syuilotan@yahoo.co.jp>2019-04-24 15:23:48 +0900
commit723d3e6871a6039330e870d94d187367e9c579aa (patch)
tree637cbe640d99d6f0fc8890fdc85497a31817596f /src/server/api/endpoints
parentMerge branch 'develop' (diff)
parent11.3.0 (diff)
downloadmisskey-723d3e6871a6039330e870d94d187367e9c579aa.tar.gz
misskey-723d3e6871a6039330e870d94d187367e9c579aa.tar.bz2
misskey-723d3e6871a6039330e870d94d187367e9c579aa.zip
Merge branch 'develop'
Diffstat (limited to 'src/server/api/endpoints')
-rw-r--r--src/server/api/endpoints/admin/update-meta.ts2
-rw-r--r--src/server/api/endpoints/ap/show.ts2
-rw-r--r--src/server/api/endpoints/app/create.ts30
-rw-r--r--src/server/api/endpoints/app/show.ts7
-rw-r--r--src/server/api/endpoints/auth/session/generate.ts13
-rw-r--r--src/server/api/endpoints/auth/session/userkey.ts11
-rw-r--r--src/server/api/endpoints/blocking/list.ts8
-rw-r--r--src/server/api/endpoints/drive.ts14
-rw-r--r--src/server/api/endpoints/drive/files.ts10
-rw-r--r--src/server/api/endpoints/drive/files/attached-notes.ts21
-rw-r--r--src/server/api/endpoints/drive/files/check-existence.ts8
-rw-r--r--src/server/api/endpoints/drive/files/create.ts7
-rw-r--r--src/server/api/endpoints/drive/files/find-by-hash.ts44
-rw-r--r--src/server/api/endpoints/drive/files/find.ts13
-rw-r--r--src/server/api/endpoints/drive/files/show.ts5
-rw-r--r--src/server/api/endpoints/drive/folders.ts10
-rw-r--r--src/server/api/endpoints/drive/folders/find.ts10
-rw-r--r--src/server/api/endpoints/drive/folders/show.ts5
-rw-r--r--src/server/api/endpoints/drive/stream.ts10
-rw-r--r--src/server/api/endpoints/federation/instances.ts4
-rw-r--r--src/server/api/endpoints/hashtags/list.ts8
-rw-r--r--src/server/api/endpoints/hashtags/search.ts7
-rw-r--r--src/server/api/endpoints/hashtags/trend.ts4
-rw-r--r--src/server/api/endpoints/hashtags/users.ts8
-rw-r--r--src/server/api/endpoints/i.ts7
-rw-r--r--src/server/api/endpoints/i/notifications.ts10
-rw-r--r--src/server/api/endpoints/i/update-email.ts4
-rw-r--r--src/server/api/endpoints/messaging/history.ts10
-rw-r--r--src/server/api/endpoints/messaging/messages.ts10
-rw-r--r--src/server/api/endpoints/messaging/messages/create.ts5
-rw-r--r--src/server/api/endpoints/meta.ts41
-rw-r--r--src/server/api/endpoints/mute/list.ts8
-rw-r--r--src/server/api/endpoints/notes.ts8
-rw-r--r--src/server/api/endpoints/notes/children.ts10
-rw-r--r--src/server/api/endpoints/notes/conversation.ts10
-rw-r--r--src/server/api/endpoints/notes/create.ts10
-rw-r--r--src/server/api/endpoints/notes/featured.ts10
-rw-r--r--src/server/api/endpoints/notes/global-timeline.ts13
-rw-r--r--src/server/api/endpoints/notes/hybrid-timeline.ts13
-rw-r--r--src/server/api/endpoints/notes/local-timeline.ts13
-rw-r--r--src/server/api/endpoints/notes/mentions.ts10
-rw-r--r--src/server/api/endpoints/notes/reactions.ts8
-rw-r--r--src/server/api/endpoints/notes/renotes.ts10
-rw-r--r--src/server/api/endpoints/notes/replies.ts10
-rw-r--r--src/server/api/endpoints/notes/search-by-tag.ts14
-rw-r--r--src/server/api/endpoints/notes/search.ts10
-rw-r--r--src/server/api/endpoints/notes/show.ts5
-rw-r--r--src/server/api/endpoints/notes/timeline.ts10
-rw-r--r--src/server/api/endpoints/notes/user-list-timeline.ts10
-rw-r--r--src/server/api/endpoints/stats.ts36
-rw-r--r--src/server/api/endpoints/sw/register.ts4
-rw-r--r--src/server/api/endpoints/users.ts8
-rw-r--r--src/server/api/endpoints/users/followers.ts10
-rw-r--r--src/server/api/endpoints/users/following.ts10
-rw-r--r--src/server/api/endpoints/users/get-frequently-replied-users.ts8
-rw-r--r--src/server/api/endpoints/users/lists/create.ts13
-rw-r--r--src/server/api/endpoints/users/lists/list.ts10
-rw-r--r--src/server/api/endpoints/users/lists/show.ts5
-rw-r--r--src/server/api/endpoints/users/notes.ts10
-rw-r--r--src/server/api/endpoints/users/recommendation.ts8
-rw-r--r--src/server/api/endpoints/users/search.ts8
-rw-r--r--src/server/api/endpoints/users/show.ts5
62 files changed, 468 insertions, 197 deletions
diff --git a/src/server/api/endpoints/admin/update-meta.ts b/src/server/api/endpoints/admin/update-meta.ts
index 3c6380acb4..1f5dd5364f 100644
--- a/src/server/api/endpoints/admin/update-meta.ts
+++ b/src/server/api/endpoints/admin/update-meta.ts
@@ -164,7 +164,7 @@ export const meta = {
},
maintainerName: {
- validator: $.optional.str,
+ validator: $.optional.nullable.str,
desc: {
'ja-JP': 'インスタンスの管理者名'
}
diff --git a/src/server/api/endpoints/ap/show.ts b/src/server/api/endpoints/ap/show.ts
index 1b992eeaa7..1bb15117dd 100644
--- a/src/server/api/endpoints/ap/show.ts
+++ b/src/server/api/endpoints/ap/show.ts
@@ -9,7 +9,7 @@ import { extractDbHost } from '../../../../misc/convert-host';
import { Users, Notes } from '../../../../models';
import { Note } from '../../../../models/entities/note';
import { User } from '../../../../models/entities/user';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { validActor } from '../../../../remote/activitypub/type';
export const meta = {
diff --git a/src/server/api/endpoints/app/create.ts b/src/server/api/endpoints/app/create.ts
index 9db60d2661..833d5060c5 100644
--- a/src/server/api/endpoints/app/create.ts
+++ b/src/server/api/endpoints/app/create.ts
@@ -4,12 +4,13 @@ import define from '../../define';
import { Apps } from '../../../../models';
import { genId } from '../../../../misc/gen-id';
import { unique } from '../../../../prelude/array';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
tags: ['app'],
requireCredential: false,
-
+
desc: {
'ja-JP': 'アプリを作成します。',
'en-US': 'Create a application.'
@@ -50,29 +51,12 @@ export const meta = {
}
},
},
-
+
res: {
- type: 'object',
- properties: {
- id: {
- type: 'string',
- description: 'アプリケーションのID'
- },
- name: {
- type: 'string',
- description: 'アプリケーションの名前'
- },
- callbackUrl: {
- type: 'string',
- nullable: true,
- description: 'コールバックするURL'
- },
- secret: {
- type: 'string',
- description: 'アプリケーションのシークレットキー'
- }
- }
- }
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'App',
+ },
};
export default define(meta, async (ps, user) => {
diff --git a/src/server/api/endpoints/app/show.ts b/src/server/api/endpoints/app/show.ts
index ce9baed2ae..e7d3e84388 100644
--- a/src/server/api/endpoints/app/show.ts
+++ b/src/server/api/endpoints/app/show.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { ApiError } from '../../error';
import { Apps } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
tags: ['app'],
@@ -13,6 +14,12 @@ export const meta = {
},
},
+ res: {
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'App',
+ },
+
errors: {
noSuchApp: {
message: 'No such app.',
diff --git a/src/server/api/endpoints/auth/session/generate.ts b/src/server/api/endpoints/auth/session/generate.ts
index bca8d33483..9bf27c8e77 100644
--- a/src/server/api/endpoints/auth/session/generate.ts
+++ b/src/server/api/endpoints/auth/session/generate.ts
@@ -5,12 +5,13 @@ import define from '../../../define';
import { ApiError } from '../../../error';
import { Apps, AuthSessions } from '../../../../../models';
import { genId } from '../../../../../misc/gen-id';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
tags: ['auth'],
requireCredential: false,
-
+
desc: {
'ja-JP': 'アプリを認証するためのトークンを作成します。',
'en-US': 'Generate a token for authorize application.'
@@ -27,14 +28,18 @@ export const meta = {
},
res: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
token: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'セッションのトークン'
},
url: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
+ format: 'url',
description: 'セッションのURL'
},
}
diff --git a/src/server/api/endpoints/auth/session/userkey.ts b/src/server/api/endpoints/auth/session/userkey.ts
index 7126ac52c1..b7a58c4750 100644
--- a/src/server/api/endpoints/auth/session/userkey.ts
+++ b/src/server/api/endpoints/auth/session/userkey.ts
@@ -3,6 +3,7 @@ import define from '../../../define';
import { ApiError } from '../../../error';
import { Apps, AuthSessions, AccessTokens, Users } from '../../../../../models';
import { ensure } from '../../../../../prelude/ensure';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
tags: ['auth'],
@@ -28,15 +29,19 @@ export const meta = {
},
res: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
accessToken: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'ユーザーのアクセストークン',
},
user: {
- type: 'User',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
description: '認証したユーザー'
},
}
diff --git a/src/server/api/endpoints/blocking/list.ts b/src/server/api/endpoints/blocking/list.ts
index 97f353579d..5ff1dc0c49 100644
--- a/src/server/api/endpoints/blocking/list.ts
+++ b/src/server/api/endpoints/blocking/list.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { Blockings } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -32,9 +33,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Blocking',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Blocking',
}
},
};
diff --git a/src/server/api/endpoints/drive.ts b/src/server/api/endpoints/drive.ts
index adf780301b..4d4516bd80 100644
--- a/src/server/api/endpoints/drive.ts
+++ b/src/server/api/endpoints/drive.ts
@@ -1,6 +1,7 @@
import define from '../define';
-import fetchMeta from '../../../misc/fetch-meta';
+import { fetchMeta } from '../../../misc/fetch-meta';
import { DriveFiles } from '../../../models';
+import { types, bool } from '../../../misc/schema';
export const meta = {
desc: {
@@ -15,20 +16,23 @@ export const meta = {
kind: 'read:drive',
res: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
capacity: {
- type: 'number'
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
},
usage: {
- type: 'number'
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
}
}
}
};
export default define(meta, async (ps, user) => {
- const instance = await fetchMeta();
+ const instance = await fetchMeta(true);
// Calculate drive usage
const usage = await DriveFiles.clacDriveUsageOf(user);
diff --git a/src/server/api/endpoints/drive/files.ts b/src/server/api/endpoints/drive/files.ts
index 4e4db6c780..493e14464c 100644
--- a/src/server/api/endpoints/drive/files.ts
+++ b/src/server/api/endpoints/drive/files.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { DriveFiles } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -41,10 +42,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFile',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
},
};
diff --git a/src/server/api/endpoints/drive/files/attached-notes.ts b/src/server/api/endpoints/drive/files/attached-notes.ts
index 7214463dde..f770bc7136 100644
--- a/src/server/api/endpoints/drive/files/attached-notes.ts
+++ b/src/server/api/endpoints/drive/files/attached-notes.ts
@@ -2,7 +2,8 @@ import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
-import { DriveFiles } from '../../../../../models';
+import { DriveFiles, Notes } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -29,10 +30,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
@@ -55,8 +59,11 @@ export default define(meta, async (ps, user) => {
throw new ApiError(meta.errors.noSuchFile);
}
- /* v11 TODO
- return await packMany(file.metadata.attachedNoteIds || [], user, {
+ const notes = await Notes.createQueryBuilder('note')
+ .where(':file = ANY(note.fileIds)', { file: file.id })
+ .getMany();
+
+ return await Notes.packMany(notes, user, {
detail: true
- });*/
+ });
});
diff --git a/src/server/api/endpoints/drive/files/check-existence.ts b/src/server/api/endpoints/drive/files/check-existence.ts
index 3a87a9497f..ab19566f1c 100644
--- a/src/server/api/endpoints/drive/files/check-existence.ts
+++ b/src/server/api/endpoints/drive/files/check-existence.ts
@@ -1,6 +1,7 @@
import $ from 'cafy';
import define from '../../../define';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -24,7 +25,8 @@ export const meta = {
},
res: {
- type: 'DriveFile',
+ type: types.boolean,
+ optional: bool.false, nullable: bool.false,
},
};
@@ -34,7 +36,5 @@ export default define(meta, async (ps, user) => {
userId: user.id,
});
- return {
- file: file ? await DriveFiles.pack(file, { self: true }) : null
- };
+ return file != null;
});
diff --git a/src/server/api/endpoints/drive/files/create.ts b/src/server/api/endpoints/drive/files/create.ts
index 340a39a41c..0f81a1da99 100644
--- a/src/server/api/endpoints/drive/files/create.ts
+++ b/src/server/api/endpoints/drive/files/create.ts
@@ -6,6 +6,7 @@ import define from '../../../define';
import { apiLogger } from '../../../logger';
import { ApiError } from '../../../error';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -56,7 +57,9 @@ export const meta = {
},
res: {
- type: 'DriveFile',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
},
errors: {
@@ -87,7 +90,7 @@ export default define(meta, async (ps, user, app, file, cleanup) => {
try {
// Create file
const driveFile = await create(user, file.path, name, null, ps.folderId, ps.force, false, null, null, ps.isSensitive);
- return DriveFiles.pack(driveFile, { self: true });
+ return await DriveFiles.pack(driveFile, { self: true });
} catch (e) {
apiLogger.error(e);
throw new ApiError();
diff --git a/src/server/api/endpoints/drive/files/find-by-hash.ts b/src/server/api/endpoints/drive/files/find-by-hash.ts
new file mode 100644
index 0000000000..d56e63bc59
--- /dev/null
+++ b/src/server/api/endpoints/drive/files/find-by-hash.ts
@@ -0,0 +1,44 @@
+import $ from 'cafy';
+import define from '../../../define';
+import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
+
+export const meta = {
+ desc: {
+ 'ja-JP': '与えられたMD5ハッシュ値を持つファイルを取得します。',
+ },
+
+ tags: ['drive'],
+
+ requireCredential: true,
+
+ kind: 'read:drive',
+
+ params: {
+ md5: {
+ validator: $.str,
+ desc: {
+ 'ja-JP': 'ファイルのMD5ハッシュ'
+ }
+ }
+ },
+
+ res: {
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
+ items: {
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
+ },
+};
+
+export default define(meta, async (ps, user) => {
+ const files = await DriveFiles.find({
+ md5: ps.md5,
+ userId: user.id,
+ });
+
+ return await DriveFiles.packMany(files, { self: true });
+});
diff --git a/src/server/api/endpoints/drive/files/find.ts b/src/server/api/endpoints/drive/files/find.ts
index 265850f84c..82b9a97b6d 100644
--- a/src/server/api/endpoints/drive/files/find.ts
+++ b/src/server/api/endpoints/drive/files/find.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
requireCredential: true,
@@ -22,7 +23,17 @@ export const meta = {
'ja-JP': 'フォルダID'
}
},
- }
+ },
+
+ res: {
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
+ items: {
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
+ },
};
export default define(meta, async (ps, user) => {
diff --git a/src/server/api/endpoints/drive/files/show.ts b/src/server/api/endpoints/drive/files/show.ts
index e8c0e683c9..8e74361f9c 100644
--- a/src/server/api/endpoints/drive/files/show.ts
+++ b/src/server/api/endpoints/drive/files/show.ts
@@ -4,6 +4,7 @@ import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFile } from '../../../../../models/entities/drive-file';
import { DriveFiles } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -38,7 +39,9 @@ export const meta = {
},
res: {
- type: 'DriveFile',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
},
errors: {
diff --git a/src/server/api/endpoints/drive/folders.ts b/src/server/api/endpoints/drive/folders.ts
index 08ae2ff709..dc3174cd2a 100644
--- a/src/server/api/endpoints/drive/folders.ts
+++ b/src/server/api/endpoints/drive/folders.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { DriveFolders } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -37,10 +38,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFolder',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFolder',
+ }
},
};
diff --git a/src/server/api/endpoints/drive/folders/find.ts b/src/server/api/endpoints/drive/folders/find.ts
index f0989ec5ae..0368d026c3 100644
--- a/src/server/api/endpoints/drive/folders/find.ts
+++ b/src/server/api/endpoints/drive/folders/find.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { DriveFolders } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
tags: ['drive'],
@@ -25,10 +26,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFolder',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFolder',
+ }
},
};
diff --git a/src/server/api/endpoints/drive/folders/show.ts b/src/server/api/endpoints/drive/folders/show.ts
index 60507e7d7f..a020b46aa9 100644
--- a/src/server/api/endpoints/drive/folders/show.ts
+++ b/src/server/api/endpoints/drive/folders/show.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { DriveFolders } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -29,7 +30,9 @@ export const meta = {
},
res: {
- type: 'DriveFolder',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFolder',
},
errors: {
diff --git a/src/server/api/endpoints/drive/stream.ts b/src/server/api/endpoints/drive/stream.ts
index 96d9f82421..db17979a4b 100644
--- a/src/server/api/endpoints/drive/stream.ts
+++ b/src/server/api/endpoints/drive/stream.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { DriveFiles } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
tags: ['drive'],
@@ -31,10 +32,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'DriveFile',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'DriveFile',
+ }
},
};
diff --git a/src/server/api/endpoints/federation/instances.ts b/src/server/api/endpoints/federation/instances.ts
index 301338ed96..3c4e0037d6 100644
--- a/src/server/api/endpoints/federation/instances.ts
+++ b/src/server/api/endpoints/federation/instances.ts
@@ -1,7 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { Instances } from '../../../../models';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
export const meta = {
tags: ['federation'],
@@ -62,7 +62,7 @@ export default define(meta, async (ps, me) => {
}
if (typeof ps.blocked === 'boolean') {
- const meta = await fetchMeta();
+ const meta = await fetchMeta(true);
if (ps.blocked) {
query.andWhere('instance.host IN (:...blocks)', { blocks: meta.blockedHosts });
} else {
diff --git a/src/server/api/endpoints/hashtags/list.ts b/src/server/api/endpoints/hashtags/list.ts
index 2998bc1a13..89cc926422 100644
--- a/src/server/api/endpoints/hashtags/list.ts
+++ b/src/server/api/endpoints/hashtags/list.ts
@@ -1,6 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { Hashtags } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
tags: ['hashtags'],
@@ -47,9 +48,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Hashtag'
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Hashtag',
}
},
};
diff --git a/src/server/api/endpoints/hashtags/search.ts b/src/server/api/endpoints/hashtags/search.ts
index 802f177993..0d2704d01c 100644
--- a/src/server/api/endpoints/hashtags/search.ts
+++ b/src/server/api/endpoints/hashtags/search.ts
@@ -1,6 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { Hashtags } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -37,9 +38,11 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'string'
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
}
},
};
diff --git a/src/server/api/endpoints/hashtags/trend.ts b/src/server/api/endpoints/hashtags/trend.ts
index e01e9d698f..84b750f2c1 100644
--- a/src/server/api/endpoints/hashtags/trend.ts
+++ b/src/server/api/endpoints/hashtags/trend.ts
@@ -1,5 +1,5 @@
import define from '../../define';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { Notes } from '../../../../models';
import { Note } from '../../../../models/entities/note';
@@ -24,7 +24,7 @@ export const meta = {
};
export default define(meta, async () => {
- const instance = await fetchMeta();
+ const instance = await fetchMeta(true);
const hiddenTags = instance.hiddenTags.map(t => t.toLowerCase());
const tagNotes = await Notes.createQueryBuilder('note')
diff --git a/src/server/api/endpoints/hashtags/users.ts b/src/server/api/endpoints/hashtags/users.ts
index fa58f2f2c0..b842f9de64 100644
--- a/src/server/api/endpoints/hashtags/users.ts
+++ b/src/server/api/endpoints/hashtags/users.ts
@@ -1,6 +1,7 @@
import $ from 'cafy';
import define from '../../define';
import { Users } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
requireCredential: false,
@@ -47,9 +48,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'User'
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
}
},
};
diff --git a/src/server/api/endpoints/i.ts b/src/server/api/endpoints/i.ts
index afad38c469..4ecd507e16 100644
--- a/src/server/api/endpoints/i.ts
+++ b/src/server/api/endpoints/i.ts
@@ -1,5 +1,6 @@
import define from '../define';
import { Users } from '../../../models';
+import { types, bool } from '../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -15,8 +16,10 @@ export const meta = {
params: {},
res: {
- type: 'User',
- }
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
+ },
};
export default define(meta, async (ps, user, app) => {
diff --git a/src/server/api/endpoints/i/notifications.ts b/src/server/api/endpoints/i/notifications.ts
index 56074c9d00..41513e5daa 100644
--- a/src/server/api/endpoints/i/notifications.ts
+++ b/src/server/api/endpoints/i/notifications.ts
@@ -4,6 +4,7 @@ import { readNotification } from '../../common/read-notification';
import define from '../../define';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Notifications, Followings, Mutings } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -53,10 +54,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Notification',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Notification',
+ }
},
};
diff --git a/src/server/api/endpoints/i/update-email.ts b/src/server/api/endpoints/i/update-email.ts
index e02f53a643..d4b9721d82 100644
--- a/src/server/api/endpoints/i/update-email.ts
+++ b/src/server/api/endpoints/i/update-email.ts
@@ -2,7 +2,7 @@ import $ from 'cafy';
import { publishMainStream } from '../../../../services/stream';
import define from '../../define';
import * as nodemailer from 'nodemailer';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import rndstr from 'rndstr';
import config from '../../../../config';
import * as ms from 'ms';
@@ -63,7 +63,7 @@ export default define(meta, async (ps, user) => {
emailVerifyCode: code
});
- const meta = await fetchMeta();
+ const meta = await fetchMeta(true);
const enableAuth = meta.smtpUser != null && meta.smtpUser !== '';
diff --git a/src/server/api/endpoints/messaging/history.ts b/src/server/api/endpoints/messaging/history.ts
index c2d746e481..27e38bbdec 100644
--- a/src/server/api/endpoints/messaging/history.ts
+++ b/src/server/api/endpoints/messaging/history.ts
@@ -3,6 +3,7 @@ import define from '../../define';
import { MessagingMessage } from '../../../../models/entities/messaging-message';
import { MessagingMessages, Mutings } from '../../../../models';
import { Brackets } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -24,10 +25,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'MessagingMessage',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'MessagingMessage',
+ }
},
};
diff --git a/src/server/api/endpoints/messaging/messages.ts b/src/server/api/endpoints/messaging/messages.ts
index add21e5f19..0d5295bff3 100644
--- a/src/server/api/endpoints/messaging/messages.ts
+++ b/src/server/api/endpoints/messaging/messages.ts
@@ -6,6 +6,7 @@ import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
import { MessagingMessages } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -48,10 +49,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'MessagingMessage',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'MessagingMessage',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/messaging/messages/create.ts b/src/server/api/endpoints/messaging/messages/create.ts
index 30ac0849a3..388852b9cd 100644
--- a/src/server/api/endpoints/messaging/messages/create.ts
+++ b/src/server/api/endpoints/messaging/messages/create.ts
@@ -9,6 +9,7 @@ import { getUser } from '../../../common/getters';
import { MessagingMessages, DriveFiles, Mutings } from '../../../../../models';
import { MessagingMessage } from '../../../../../models/entities/messaging-message';
import { genId } from '../../../../../misc/gen-id';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -41,7 +42,9 @@ export const meta = {
},
res: {
- type: 'MessagingMessage',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'MessagingMessage',
},
errors: {
diff --git a/src/server/api/endpoints/meta.ts b/src/server/api/endpoints/meta.ts
index 785f21f22b..793eb5a204 100644
--- a/src/server/api/endpoints/meta.ts
+++ b/src/server/api/endpoints/meta.ts
@@ -2,9 +2,10 @@ import $ from 'cafy';
import * as os from 'os';
import config from '../../../config';
import define from '../define';
-import fetchMeta from '../../../misc/fetch-meta';
+import { fetchMeta } from '../../../misc/fetch-meta';
import * as pkg from '../../../../package.json';
import { Emojis } from '../../../models';
+import { types, bool } from '../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -26,32 +27,40 @@ export const meta = {
},
res: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
version: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'The version of Misskey of this instance.',
example: pkg.version
},
name: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'The name of this instance.',
},
description: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'The description of this instance.',
},
announcements: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
title: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'The title of the announcement.',
},
text: {
- type: 'string',
+ type: types.string,
+ optional: bool.false, nullable: bool.false,
description: 'The text of the announcement. (can be HTML)',
},
}
@@ -59,19 +68,23 @@ export const meta = {
description: 'The announcements of this instance.',
},
disableRegistration: {
- type: 'boolean',
+ type: types.boolean,
+ optional: bool.false, nullable: bool.false,
description: 'Whether disabled open registration.',
},
disableLocalTimeline: {
- type: 'boolean',
+ type: types.boolean,
+ optional: bool.false, nullable: bool.false,
description: 'Whether disabled LTL and STL.',
},
disableGlobalTimeline: {
- type: 'boolean',
+ type: types.boolean,
+ optional: bool.false, nullable: bool.false,
description: 'Whether disabled GTL.',
},
enableEmojiReaction: {
- type: 'boolean',
+ type: types.boolean,
+ optional: bool.false, nullable: bool.false,
description: 'Whether enabled emoji reaction.',
},
}
@@ -79,7 +92,7 @@ export const meta = {
};
export default define(meta, async (ps, me) => {
- const instance = await fetchMeta();
+ const instance = await fetchMeta(true);
const emojis = await Emojis.find({ host: null });
diff --git a/src/server/api/endpoints/mute/list.ts b/src/server/api/endpoints/mute/list.ts
index 0fd8a4860d..f9ea380c76 100644
--- a/src/server/api/endpoints/mute/list.ts
+++ b/src/server/api/endpoints/mute/list.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Mutings } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -32,9 +33,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Muting',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Muting',
}
},
};
diff --git a/src/server/api/endpoints/notes.ts b/src/server/api/endpoints/notes.ts
index 17ba969350..7aa19c9a2b 100644
--- a/src/server/api/endpoints/notes.ts
+++ b/src/server/api/endpoints/notes.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../misc/cafy-id';
import define from '../define';
import { makePaginationQuery } from '../common/make-pagination-query';
import { Notes } from '../../../models';
+import { types, bool } from '../../../misc/schema';
export const meta = {
desc: {
@@ -62,9 +63,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
}
},
};
diff --git a/src/server/api/endpoints/notes/children.ts b/src/server/api/endpoints/notes/children.ts
index 2b4ae2a312..e8861eafa1 100644
--- a/src/server/api/endpoints/notes/children.ts
+++ b/src/server/api/endpoints/notes/children.ts
@@ -6,6 +6,7 @@ import { generateVisibilityQuery } from '../../common/generate-visibility-query'
import { generateMuteQuery } from '../../common/generate-mute-query';
import { Brackets } from 'typeorm';
import { Notes } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -41,10 +42,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
};
diff --git a/src/server/api/endpoints/notes/conversation.ts b/src/server/api/endpoints/notes/conversation.ts
index 6b26e31c07..acd3ac75ef 100644
--- a/src/server/api/endpoints/notes/conversation.ts
+++ b/src/server/api/endpoints/notes/conversation.ts
@@ -5,6 +5,7 @@ import { ApiError } from '../../error';
import { getNote } from '../../common/getters';
import { Note } from '../../../../models/entities/note';
import { Notes } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -37,10 +38,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/notes/create.ts b/src/server/api/endpoints/notes/create.ts
index 994dfb4dca..6cd84b866f 100644
--- a/src/server/api/endpoints/notes/create.ts
+++ b/src/server/api/endpoints/notes/create.ts
@@ -3,13 +3,14 @@ import * as ms from 'ms';
import { length } from 'stringz';
import create from '../../../../services/note/create';
import define from '../../define';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { ApiError } from '../../error';
import { ID } from '../../../../misc/cafy-id';
import { User } from '../../../../models/entities/user';
import { Users, DriveFiles, Notes } from '../../../../models';
import { DriveFile } from '../../../../models/entities/drive-file';
import { Note } from '../../../../models/entities/note';
+import { types, bool } from '../../../../misc/schema';
let maxNoteTextLength = 1000;
@@ -174,10 +175,13 @@ export const meta = {
},
res: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
createdNote: {
- type: 'Note',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
description: '作成した投稿'
}
}
diff --git a/src/server/api/endpoints/notes/featured.ts b/src/server/api/endpoints/notes/featured.ts
index fa9ae39e3a..64750815b0 100644
--- a/src/server/api/endpoints/notes/featured.ts
+++ b/src/server/api/endpoints/notes/featured.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import define from '../../define';
import { generateMuteQuery } from '../../common/generate-mute-query';
import { Notes } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -24,10 +25,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
};
diff --git a/src/server/api/endpoints/notes/global-timeline.ts b/src/server/api/endpoints/notes/global-timeline.ts
index ceffb1cf4a..3631208da7 100644
--- a/src/server/api/endpoints/notes/global-timeline.ts
+++ b/src/server/api/endpoints/notes/global-timeline.ts
@@ -1,12 +1,13 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { ApiError } from '../../error';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Notes } from '../../../../models';
import { generateMuteQuery } from '../../common/generate-mute-query';
import { activeUsersChart } from '../../../../services/chart';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -46,10 +47,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
@@ -62,7 +66,6 @@ export const meta = {
};
export default define(meta, async (ps, user) => {
- // TODO どっかにキャッシュ
const m = await fetchMeta();
if (m.disableGlobalTimeline) {
if (user == null || (!user.isAdmin && !user.isModerator)) {
diff --git a/src/server/api/endpoints/notes/hybrid-timeline.ts b/src/server/api/endpoints/notes/hybrid-timeline.ts
index effee2b134..c05c8dedd6 100644
--- a/src/server/api/endpoints/notes/hybrid-timeline.ts
+++ b/src/server/api/endpoints/notes/hybrid-timeline.ts
@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { ApiError } from '../../error';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Followings, Notes } from '../../../../models';
@@ -9,6 +9,7 @@ import { Brackets } from 'typeorm';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
import { generateMuteQuery } from '../../common/generate-mute-query';
import { activeUsersChart } from '../../../../services/chart';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -89,10 +90,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
@@ -105,7 +109,6 @@ export const meta = {
};
export default define(meta, async (ps, user) => {
- // TODO どっかにキャッシュ
const m = await fetchMeta();
if (m.disableLocalTimeline && !user.isAdmin && !user.isModerator) {
throw new ApiError(meta.errors.stlDisabled);
diff --git a/src/server/api/endpoints/notes/local-timeline.ts b/src/server/api/endpoints/notes/local-timeline.ts
index c10c0d7482..ca84fc6ef9 100644
--- a/src/server/api/endpoints/notes/local-timeline.ts
+++ b/src/server/api/endpoints/notes/local-timeline.ts
@@ -1,7 +1,7 @@
import $ from 'cafy';
import { ID } from '../../../../misc/cafy-id';
import define from '../../define';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { ApiError } from '../../error';
import { Notes } from '../../../../models';
import { generateMuteQuery } from '../../common/generate-mute-query';
@@ -9,6 +9,7 @@ import { makePaginationQuery } from '../../common/make-pagination-query';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
import { activeUsersChart } from '../../../../services/chart';
import { Brackets } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -63,10 +64,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
@@ -79,7 +83,6 @@ export const meta = {
};
export default define(meta, async (ps, user) => {
- // TODO どっかにキャッシュ
const m = await fetchMeta();
if (m.disableLocalTimeline) {
if (user == null || (!user.isAdmin && !user.isModerator)) {
diff --git a/src/server/api/endpoints/notes/mentions.ts b/src/server/api/endpoints/notes/mentions.ts
index b7f614915b..02e44492ba 100644
--- a/src/server/api/endpoints/notes/mentions.ts
+++ b/src/server/api/endpoints/notes/mentions.ts
@@ -7,6 +7,7 @@ import { generateVisibilityQuery } from '../../common/generate-visibility-query'
import { generateMuteQuery } from '../../common/generate-mute-query';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Brackets } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -43,10 +44,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
};
diff --git a/src/server/api/endpoints/notes/reactions.ts b/src/server/api/endpoints/notes/reactions.ts
index bcb0b6d1ec..0773b4faa2 100644
--- a/src/server/api/endpoints/notes/reactions.ts
+++ b/src/server/api/endpoints/notes/reactions.ts
@@ -4,6 +4,7 @@ import define from '../../define';
import { getNote } from '../../common/getters';
import { ApiError } from '../../error';
import { NoteReactions } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -44,9 +45,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Reaction'
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'NoteReaction',
}
},
diff --git a/src/server/api/endpoints/notes/renotes.ts b/src/server/api/endpoints/notes/renotes.ts
index 74a8ea918e..00dfac3770 100644
--- a/src/server/api/endpoints/notes/renotes.ts
+++ b/src/server/api/endpoints/notes/renotes.ts
@@ -7,6 +7,7 @@ import { generateVisibilityQuery } from '../../common/generate-visibility-query'
import { generateMuteQuery } from '../../common/generate-mute-query';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { Notes } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -42,10 +43,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/notes/replies.ts b/src/server/api/endpoints/notes/replies.ts
index 980ff2446e..5fb0fd989f 100644
--- a/src/server/api/endpoints/notes/replies.ts
+++ b/src/server/api/endpoints/notes/replies.ts
@@ -5,6 +5,7 @@ import { Notes } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
import { generateMuteQuery } from '../../common/generate-mute-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -46,10 +47,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
};
diff --git a/src/server/api/endpoints/notes/search-by-tag.ts b/src/server/api/endpoints/notes/search-by-tag.ts
index cba3724b6f..0b49f896ad 100644
--- a/src/server/api/endpoints/notes/search-by-tag.ts
+++ b/src/server/api/endpoints/notes/search-by-tag.ts
@@ -6,6 +6,7 @@ import { Notes } from '../../../../models';
import { generateMuteQuery } from '../../common/generate-mute-query';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
import { Brackets } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -81,10 +82,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
};
@@ -96,14 +100,14 @@ export default define(meta, async (ps, me) => {
if (me) generateMuteQuery(query, me);
if (ps.tag) {
- query.andWhere(':tag = ANY(note.tags)', { tag: ps.tag });
+ query.andWhere(':tag = ANY(note.tags)', { tag: ps.tag.toLowerCase() });
} else {
let i = 0;
query.andWhere(new Brackets(qb => {
for (const tags of ps.query!) {
qb.orWhere(new Brackets(qb => {
for (const tag of tags) {
- qb.andWhere(`:tag${i} = ANY(note.tags)`, { [`tag${i}`]: tag });
+ qb.andWhere(`:tag${i} = ANY(note.tags)`, { [`tag${i}`]: tag.toLowerCase() });
i++;
}
}));
diff --git a/src/server/api/endpoints/notes/search.ts b/src/server/api/endpoints/notes/search.ts
index 4d5ac6fbe0..daf992b639 100644
--- a/src/server/api/endpoints/notes/search.ts
+++ b/src/server/api/endpoints/notes/search.ts
@@ -4,6 +4,7 @@ import define from '../../define';
import { ApiError } from '../../error';
import { Notes } from '../../../../models';
import { In } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -32,10 +33,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/notes/show.ts b/src/server/api/endpoints/notes/show.ts
index d41dc20c54..54b420813d 100644
--- a/src/server/api/endpoints/notes/show.ts
+++ b/src/server/api/endpoints/notes/show.ts
@@ -4,6 +4,7 @@ import define from '../../define';
import { getNote } from '../../common/getters';
import { ApiError } from '../../error';
import { Notes } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
stability: 'stable',
@@ -28,7 +29,9 @@ export const meta = {
},
res: {
- type: 'Note',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
},
errors: {
diff --git a/src/server/api/endpoints/notes/timeline.ts b/src/server/api/endpoints/notes/timeline.ts
index c27f3df1b7..5e692db389 100644
--- a/src/server/api/endpoints/notes/timeline.ts
+++ b/src/server/api/endpoints/notes/timeline.ts
@@ -7,6 +7,7 @@ import { generateVisibilityQuery } from '../../common/generate-visibility-query'
import { generateMuteQuery } from '../../common/generate-mute-query';
import { activeUsersChart } from '../../../../services/chart';
import { Brackets } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -88,10 +89,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
};
diff --git a/src/server/api/endpoints/notes/user-list-timeline.ts b/src/server/api/endpoints/notes/user-list-timeline.ts
index 05f171af8b..c16018d434 100644
--- a/src/server/api/endpoints/notes/user-list-timeline.ts
+++ b/src/server/api/endpoints/notes/user-list-timeline.ts
@@ -6,6 +6,7 @@ import { UserLists, UserListJoinings, Notes } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { generateVisibilityQuery } from '../../common/generate-visibility-query';
import { activeUsersChart } from '../../../../services/chart';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -94,10 +95,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/stats.ts b/src/server/api/endpoints/stats.ts
index f3ebaa16ad..f85109b4b4 100644
--- a/src/server/api/endpoints/stats.ts
+++ b/src/server/api/endpoints/stats.ts
@@ -1,6 +1,7 @@
import define from '../define';
import { Notes, Users } from '../../../models';
import { federationChart, driveChart } from '../../../services/chart';
+import { bool, types } from '../../../misc/schema';
export const meta = {
requireCredential: false,
@@ -15,26 +16,32 @@ export const meta = {
},
res: {
- type: 'object',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
properties: {
notesCount: {
- type: 'number',
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
description: 'The count of all (local/remote) notes of this instance.',
},
originalNotesCount: {
- type: 'number',
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
description: 'The count of all local notes of this instance.',
},
usersCount: {
- type: 'number',
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
description: 'The count of all (local/remote) accounts of this instance.',
},
originalUsersCount: {
- type: 'number',
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
description: 'The count of all local accounts of this instance.',
},
instances: {
- type: 'number',
+ type: types.number,
+ optional: bool.false, nullable: bool.false,
description: 'The count of federated instances.',
},
}
@@ -42,7 +49,14 @@ export const meta = {
};
export default define(meta, async () => {
- const [notesCount, originalNotesCount, usersCount, originalUsersCount, instances, driveUsageLocal, driveUsageRemote] = await Promise.all([
+ const [notesCount,
+ originalNotesCount,
+ usersCount,
+ originalUsersCount,
+ instances,
+ driveUsageLocal,
+ driveUsageRemote
+ ] = await Promise.all([
Notes.count(),
Notes.count({ userHost: null }),
Users.count(),
@@ -53,6 +67,12 @@ export default define(meta, async () => {
]);
return {
- notesCount, originalNotesCount, usersCount, originalUsersCount, instances, driveUsageLocal, driveUsageRemote
+ notesCount,
+ originalNotesCount,
+ usersCount,
+ originalUsersCount,
+ instances,
+ driveUsageLocal,
+ driveUsageRemote
};
});
diff --git a/src/server/api/endpoints/sw/register.ts b/src/server/api/endpoints/sw/register.ts
index 559937ca2f..a4838b4565 100644
--- a/src/server/api/endpoints/sw/register.ts
+++ b/src/server/api/endpoints/sw/register.ts
@@ -1,6 +1,6 @@
import $ from 'cafy';
import define from '../../define';
-import fetchMeta from '../../../../misc/fetch-meta';
+import { fetchMeta } from '../../../../misc/fetch-meta';
import { genId } from '../../../../misc/gen-id';
import { SwSubscriptions } from '../../../../models';
@@ -33,7 +33,7 @@ export default define(meta, async (ps, user) => {
publickey: ps.publickey,
});
- const instance = await fetchMeta();
+ const instance = await fetchMeta(true);
if (exist != null) {
return {
diff --git a/src/server/api/endpoints/users.ts b/src/server/api/endpoints/users.ts
index 18af0a2685..c710706f0c 100644
--- a/src/server/api/endpoints/users.ts
+++ b/src/server/api/endpoints/users.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import define from '../define';
import { Users } from '../../../models';
import { generateMuteQueryForUsers } from '../common/generate-mute-query';
+import { types, bool } from '../../../misc/schema';
export const meta = {
tags: ['users'],
@@ -53,9 +54,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'User',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
}
},
};
diff --git a/src/server/api/endpoints/users/followers.ts b/src/server/api/endpoints/users/followers.ts
index 0cb68353ca..465b71e2e6 100644
--- a/src/server/api/endpoints/users/followers.ts
+++ b/src/server/api/endpoints/users/followers.ts
@@ -5,6 +5,7 @@ import { ApiError } from '../../error';
import { Users, Followings } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { toPunyNullable } from '../../../../misc/convert-host';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -48,10 +49,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Following',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Following',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/users/following.ts b/src/server/api/endpoints/users/following.ts
index 2e273dc0c2..2a7748ac64 100644
--- a/src/server/api/endpoints/users/following.ts
+++ b/src/server/api/endpoints/users/following.ts
@@ -5,6 +5,7 @@ import { ApiError } from '../../error';
import { Users, Followings } from '../../../../models';
import { makePaginationQuery } from '../../common/make-pagination-query';
import { toPunyNullable } from '../../../../misc/convert-host';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -48,10 +49,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Following',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Following',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/users/get-frequently-replied-users.ts b/src/server/api/endpoints/users/get-frequently-replied-users.ts
index a1d140c6c9..420936c089 100644
--- a/src/server/api/endpoints/users/get-frequently-replied-users.ts
+++ b/src/server/api/endpoints/users/get-frequently-replied-users.ts
@@ -6,6 +6,7 @@ import { ApiError } from '../../error';
import { getUser } from '../../common/getters';
import { Not, In } from 'typeorm';
import { Notes, Users } from '../../../../models';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
tags: ['users'],
@@ -28,9 +29,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'User',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
}
},
diff --git a/src/server/api/endpoints/users/lists/create.ts b/src/server/api/endpoints/users/lists/create.ts
index 21dc6d331d..79efffbf9e 100644
--- a/src/server/api/endpoints/users/lists/create.ts
+++ b/src/server/api/endpoints/users/lists/create.ts
@@ -3,6 +3,7 @@ import define from '../../../define';
import { UserLists } from '../../../../../models';
import { genId } from '../../../../../misc/gen-id';
import { UserList } from '../../../../../models/entities/user-list';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -17,10 +18,16 @@ export const meta = {
kind: 'write:account',
params: {
- title: {
+ name: {
validator: $.str.range(1, 100)
}
- }
+ },
+
+ res: {
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'UserList',
+ },
};
export default define(meta, async (ps, user) => {
@@ -28,7 +35,7 @@ export default define(meta, async (ps, user) => {
id: genId(),
createdAt: new Date(),
userId: user.id,
- name: ps.title,
+ name: ps.name,
} as UserList);
return await UserLists.pack(userList);
diff --git a/src/server/api/endpoints/users/lists/list.ts b/src/server/api/endpoints/users/lists/list.ts
index b05fc45527..684086b5c6 100644
--- a/src/server/api/endpoints/users/lists/list.ts
+++ b/src/server/api/endpoints/users/lists/list.ts
@@ -1,5 +1,6 @@
import define from '../../../define';
import { UserLists } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -13,10 +14,13 @@ export const meta = {
kind: 'read:account',
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'UserList',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'UserList',
+ }
},
};
diff --git a/src/server/api/endpoints/users/lists/show.ts b/src/server/api/endpoints/users/lists/show.ts
index 1a997ec7c5..395f9352d4 100644
--- a/src/server/api/endpoints/users/lists/show.ts
+++ b/src/server/api/endpoints/users/lists/show.ts
@@ -3,6 +3,7 @@ import { ID } from '../../../../../misc/cafy-id';
import define from '../../../define';
import { ApiError } from '../../../error';
import { UserLists } from '../../../../../models';
+import { types, bool } from '../../../../../misc/schema';
export const meta = {
desc: {
@@ -23,7 +24,9 @@ export const meta = {
},
res: {
- type: 'UserList'
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'UserList',
},
errors: {
diff --git a/src/server/api/endpoints/users/notes.ts b/src/server/api/endpoints/users/notes.ts
index 4691a99394..fdc50e4dae 100644
--- a/src/server/api/endpoints/users/notes.ts
+++ b/src/server/api/endpoints/users/notes.ts
@@ -8,6 +8,7 @@ import { generateVisibilityQuery } from '../../common/generate-visibility-query'
import { Notes } from '../../../../models';
import { generateMuteQuery } from '../../common/generate-mute-query';
import { Brackets } from 'typeorm';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -119,10 +120,13 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'Note',
- },
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'Note',
+ }
},
errors: {
diff --git a/src/server/api/endpoints/users/recommendation.ts b/src/server/api/endpoints/users/recommendation.ts
index 9e16e34e39..67b646a35f 100644
--- a/src/server/api/endpoints/users/recommendation.ts
+++ b/src/server/api/endpoints/users/recommendation.ts
@@ -3,6 +3,7 @@ import $ from 'cafy';
import define from '../../define';
import { Users, Followings } from '../../../../models';
import { generateMuteQueryForUsers } from '../../common/generate-mute-query';
+import { types, bool } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -28,9 +29,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'User',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
}
},
};
diff --git a/src/server/api/endpoints/users/search.ts b/src/server/api/endpoints/users/search.ts
index 96da221d97..2809465fd7 100644
--- a/src/server/api/endpoints/users/search.ts
+++ b/src/server/api/endpoints/users/search.ts
@@ -2,6 +2,7 @@ import $ from 'cafy';
import define from '../../define';
import { Users } from '../../../../models';
import { User } from '../../../../models/entities/user';
+import { bool, types } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -54,9 +55,12 @@ export const meta = {
},
res: {
- type: 'array',
+ type: types.array,
+ optional: bool.false, nullable: bool.false,
items: {
- type: 'User',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
}
},
};
diff --git a/src/server/api/endpoints/users/show.ts b/src/server/api/endpoints/users/show.ts
index a401166c55..820c44e81b 100644
--- a/src/server/api/endpoints/users/show.ts
+++ b/src/server/api/endpoints/users/show.ts
@@ -6,6 +6,7 @@ import { ApiError } from '../../error';
import { ID } from '../../../../misc/cafy-id';
import { Users } from '../../../../models';
import { In } from 'typeorm';
+import { bool, types } from '../../../../misc/schema';
export const meta = {
desc: {
@@ -42,7 +43,9 @@ export const meta = {
},
res: {
- type: 'User',
+ type: types.object,
+ optional: bool.false, nullable: bool.false,
+ ref: 'User',
},
errors: {