summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/notes
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2023-02-26 18:57:24 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2023-02-26 18:57:24 +0900
commita78a839841a5f668d420abdee358756e130fdb0a (patch)
treeebbd4470ee3d5b733cd29e4672b08b61c90932f7 /packages/backend/src/server/api/endpoints/notes
parentホームタイムラインの読み込みでクエリタイムアウトに... (diff)
downloadsharkey-a78a839841a5f668d420abdee358756e130fdb0a.tar.gz
sharkey-a78a839841a5f668d420abdee358756e130fdb0a.tar.bz2
sharkey-a78a839841a5f668d420abdee358756e130fdb0a.zip
refactor
Diffstat (limited to 'packages/backend/src/server/api/endpoints/notes')
-rw-r--r--packages/backend/src/server/api/endpoints/notes/timeline.ts16
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 });