summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/clips
diff options
context:
space:
mode:
authorxianon <xianon@hotmail.co.jp>2022-04-19 22:59:39 +0900
committerGitHub <noreply@github.com>2022-04-19 22:59:39 +0900
commit60620bdb2571749d66d847ad7baa5c377165e37a (patch)
tree9b02367baec112b739d044e3bbe524592b0036c5 /packages/backend/src/server/api/endpoints/clips
parentawait promises (#8519) (diff)
downloadsharkey-60620bdb2571749d66d847ad7baa5c377165e37a.tar.gz
sharkey-60620bdb2571749d66d847ad7baa5c377165e37a.tar.bz2
sharkey-60620bdb2571749d66d847ad7baa5c377165e37a.zip
fix: アンテナ、クリップ、リストの表示を速くする (#8518)
* アンテナノートを取得するクエリがタイムアウトしないように速くする * テーブル名を直接指定しないようにする * クリップの取得を速くする * リストの取得を速くする
Diffstat (limited to 'packages/backend/src/server/api/endpoints/clips')
-rw-r--r--packages/backend/src/server/api/endpoints/clips/notes.ts8
1 files changed, 2 insertions, 6 deletions
diff --git a/packages/backend/src/server/api/endpoints/clips/notes.ts b/packages/backend/src/server/api/endpoints/clips/notes.ts
index 4b6782fca0..4ace747efe 100644
--- a/packages/backend/src/server/api/endpoints/clips/notes.ts
+++ b/packages/backend/src/server/api/endpoints/clips/notes.ts
@@ -57,12 +57,8 @@ export default define(meta, paramDef, async (ps, user) => {
throw new ApiError(meta.errors.noSuchClip);
}
- const clipQuery = ClipNotes.createQueryBuilder('joining')
- .select('joining.noteId')
- .where('joining.clipId = :clipId', { clipId: clip.id });
-
const query = makePaginationQuery(Notes.createQueryBuilder('note'), ps.sinceId, ps.untilId)
- .andWhere(`note.id IN (${ clipQuery.getQuery() })`)
+ .innerJoin(ClipNotes.metadata.targetName, 'clipNote', 'clipNote.noteId = note.id')
.innerJoinAndSelect('note.user', 'user')
.leftJoinAndSelect('user.avatar', 'avatar')
.leftJoinAndSelect('user.banner', 'banner')
@@ -74,7 +70,7 @@ export default define(meta, paramDef, async (ps, user) => {
.leftJoinAndSelect('renote.user', 'renoteUser')
.leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar')
.leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner')
- .setParameters(clipQuery.getParameters());
+ .andWhere('clipNote.clipId = :clipId', { clipId: clip.id });
if (user) {
generateVisibilityQuery(query, user);