diff options
| author | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-26 18:57:24 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2023-02-26 18:57:24 +0900 |
| commit | a78a839841a5f668d420abdee358756e130fdb0a (patch) | |
| tree | ebbd4470ee3d5b733cd29e4672b08b61c90932f7 /packages/backend/src/server/api/endpoints | |
| parent | ホームタイムラインの読み込みでクエリタイムアウトに... (diff) | |
| download | sharkey-a78a839841a5f668d420abdee358756e130fdb0a.tar.gz sharkey-a78a839841a5f668d420abdee358756e130fdb0a.tar.bz2 sharkey-a78a839841a5f668d420abdee358756e130fdb0a.zip | |
refactor
Diffstat (limited to 'packages/backend/src/server/api/endpoints')
| -rw-r--r-- | packages/backend/src/server/api/endpoints/notes/timeline.ts | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/packages/backend/src/server/api/endpoints/notes/timeline.ts b/packages/backend/src/server/api/endpoints/notes/timeline.ts index 942c4cf51e..e6de087c4a 100644 --- a/packages/backend/src/server/api/endpoints/notes/timeline.ts +++ b/packages/backend/src/server/api/endpoints/notes/timeline.ts @@ -58,12 +58,10 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { private activeUsersChart: ActiveUsersChart, ) { super(meta, paramDef, async (ps, me) => { - const hasFollowing = (await this.followingsRepository.count({ - where: { - followerId: me.id, - }, - take: 1, - })) !== 0; + const followees = await this.followingsRepository.createQueryBuilder('following') + .select('following.followeeId') + .where('following.followerId = :followerId', { followerId: me.id }) + .getMany(); //#region Construct query const query = this.queryService.makePaginationQuery(this.notesRepository.createQueryBuilder('note'), @@ -81,11 +79,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { .leftJoinAndSelect('renoteUser.avatar', 'renoteUserAvatar') .leftJoinAndSelect('renoteUser.banner', 'renoteUserBanner'); - if (hasFollowing) { - const followees = await this.followingsRepository.createQueryBuilder('following') - .select('following.followeeId') - .where('following.followerId = :followerId', { followerId: me.id }) - .getMany(); + if (followees.length > 0) { const meOrFolloweeIds = [me.id, ...followees.map(f => f.followeeId)]; query.andWhere('note.userId IN (:...meOrFolloweeIds)', { meOrFolloweeIds: meOrFolloweeIds }); |