summaryrefslogtreecommitdiff
path: root/packages/backend/src/server/api/endpoints/admin
diff options
context:
space:
mode:
authorsyuilo <4439005+syuilo@users.noreply.github.com>2024-05-31 16:06:00 +0900
committerGitHub <noreply@github.com>2024-05-31 16:06:00 +0900
commit90ba1ca1f948c62b01055d58909ad4864ce819dd (patch)
treef923b0706e86648aac7a8619235b272a74cc4aa7 /packages/backend/src/server/api/endpoints/admin
parentMerge branch 'develop' into release/2024.5.0 (diff)
parentperf(backend): avoid N+1 selects from `user` table when packing many entities... (diff)
downloadsharkey-90ba1ca1f948c62b01055d58909ad4864ce819dd.tar.gz
sharkey-90ba1ca1f948c62b01055d58909ad4864ce819dd.tar.bz2
sharkey-90ba1ca1f948c62b01055d58909ad4864ce819dd.zip
Merge branch 'develop' into release/2024.5.0
Diffstat (limited to 'packages/backend/src/server/api/endpoints/admin')
-rw-r--r--packages/backend/src/server/api/endpoints/admin/roles/users.ts5
1 files changed, 4 insertions, 1 deletions
diff --git a/packages/backend/src/server/api/endpoints/admin/roles/users.ts b/packages/backend/src/server/api/endpoints/admin/roles/users.ts
index 45758d4f50..198166bec2 100644
--- a/packages/backend/src/server/api/endpoints/admin/roles/users.ts
+++ b/packages/backend/src/server/api/endpoints/admin/roles/users.ts
@@ -89,10 +89,13 @@ export default class extends Endpoint<typeof meta, typeof paramDef> { // eslint-
.limit(ps.limit)
.getMany();
+ const _users = assigns.map(({ user, userId }) => user ?? userId);
+ const _userMap = await this.userEntityService.packMany(_users, me, { schema: 'UserDetailed' })
+ .then(users => new Map(users.map(u => [u.id, u])));
return await Promise.all(assigns.map(async assign => ({
id: assign.id,
createdAt: this.idService.parse(assign.id).date.toISOString(),
- user: await this.userEntityService.pack(assign.user!, me, { schema: 'UserDetailed' }),
+ user: _userMap.get(assign.userId) ?? await this.userEntityService.pack(assign.user!, me, { schema: 'UserDetailed' }),
expiresAt: assign.expiresAt?.toISOString() ?? null,
})));
});