summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorおさむのひと <46447427+samunohito@users.noreply.github.com>2024-05-10 15:33:25 +0900
committerGitHub <noreply@github.com>2024-05-10 15:33:25 +0900
commitf6af6d9679305b36dc993a310462a6065248ae1a (patch)
tree3fd091304b092524ea8282c7c0a0b716aac2eac7
parentfix(backend): 不要なUserProfileの取得を修正 (#13812) (diff)
downloadmisskey-f6af6d9679305b36dc993a310462a6065248ae1a.tar.gz
misskey-f6af6d9679305b36dc993a310462a6065248ae1a.tar.bz2
misskey-f6af6d9679305b36dc993a310462a6065248ae1a.zip
fix(backend): UserEntityService.getRelationsの取得処理を軽量化 (#13811)
* fix(backend): UserEntityService.getRelationsの取得処理を軽量化 * rollback
-rw-r--r--packages/backend/src/core/entities/UserEntityService.ts49
1 files changed, 35 insertions, 14 deletions
diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts
index d85f31a989..b80a1ec206 100644
--- a/packages/backend/src/core/entities/UserEntityService.ts
+++ b/packages/backend/src/core/entities/UserEntityService.ts
@@ -249,20 +249,41 @@ export class UserEntityService implements OnModuleInit {
] = await Promise.all([
this.followingsRepository.findBy({ followerId: me })
.then(f => new Map(f.map(it => [it.followeeId, it]))),
- this.followingsRepository.findBy({ followeeId: me })
- .then(it => it.map(it => it.followerId)),
- this.followRequestsRepository.findBy({ followerId: me })
- .then(it => it.map(it => it.followeeId)),
- this.followRequestsRepository.findBy({ followeeId: me })
- .then(it => it.map(it => it.followerId)),
- this.blockingsRepository.findBy({ blockerId: me })
- .then(it => it.map(it => it.blockeeId)),
- this.blockingsRepository.findBy({ blockeeId: me })
- .then(it => it.map(it => it.blockerId)),
- this.mutingsRepository.findBy({ muterId: me })
- .then(it => it.map(it => it.muteeId)),
- this.renoteMutingsRepository.findBy({ muterId: me })
- .then(it => it.map(it => it.muteeId)),
+ this.followingsRepository.createQueryBuilder('f')
+ .select('f.followerId')
+ .where('f.followeeId = :me', { me })
+ .getRawMany<{ f_followerId: string }>()
+ .then(it => it.map(it => it.f_followerId)),
+ this.followRequestsRepository.createQueryBuilder('f')
+ .select('f.followeeId')
+ .where('f.followerId = :me', { me })
+ .getRawMany<{ f_followeeId: string }>()
+ .then(it => it.map(it => it.f_followeeId)),
+ this.followRequestsRepository.createQueryBuilder('f')
+ .select('f.followerId')
+ .where('f.followeeId = :me', { me })
+ .getRawMany<{ f_followerId: string }>()
+ .then(it => it.map(it => it.f_followerId)),
+ this.blockingsRepository.createQueryBuilder('b')
+ .select('b.blockeeId')
+ .where('b.blockerId = :me', { me })
+ .getRawMany<{ b_blockeeId: string }>()
+ .then(it => it.map(it => it.b_blockeeId)),
+ this.blockingsRepository.createQueryBuilder('b')
+ .select('b.blockerId')
+ .where('b.blockeeId = :me', { me })
+ .getRawMany<{ b_blockerId: string }>()
+ .then(it => it.map(it => it.b_blockerId)),
+ this.mutingsRepository.createQueryBuilder('m')
+ .select('m.muteeId')
+ .where('m.muterId = :me', { me })
+ .getRawMany<{ m_muteeId: string }>()
+ .then(it => it.map(it => it.m_muteeId)),
+ this.renoteMutingsRepository.createQueryBuilder('m')
+ .select('m.muteeId')
+ .where('m.muterId = :me', { me })
+ .getRawMany<{ m_muteeId: string }>()
+ .then(it => it.map(it => it.m_muteeId)),
]);
return new Map(