mirror of
https://github.com/awatertrevi/infisical.git
synced 2026-09-22 13:39:35 +00:00
perf(group-fns): optimize sequential delete to be concurrent
This commit is contained in:
@@ -336,31 +336,36 @@ export const removeUsersFromGroupByUserIds = async ({
|
|||||||
)
|
)
|
||||||
);
|
);
|
||||||
|
|
||||||
// TODO: this part can be optimized
|
const promises: Array<Promise<void>> = [];
|
||||||
for await (const userId of userIds) {
|
for (const userId of userIds) {
|
||||||
const t = await userGroupMembershipDAL.filterProjectsByUserMembership(userId, group.id, projectIds, tx);
|
promises.push(
|
||||||
const projectsToDeleteKeyFor = projectIds.filter((p) => !t.has(p));
|
(async () => {
|
||||||
|
const t = await userGroupMembershipDAL.filterProjectsByUserMembership(userId, group.id, projectIds, tx);
|
||||||
|
const projectsToDeleteKeyFor = projectIds.filter((p) => !t.has(p));
|
||||||
|
|
||||||
if (projectsToDeleteKeyFor.length) {
|
if (projectsToDeleteKeyFor.length) {
|
||||||
await projectKeyDAL.delete(
|
await projectKeyDAL.delete(
|
||||||
{
|
{
|
||||||
receiverId: userId,
|
receiverId: userId,
|
||||||
$in: {
|
$in: {
|
||||||
projectId: projectsToDeleteKeyFor
|
projectId: projectsToDeleteKeyFor
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
tx
|
tx
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
await userGroupMembershipDAL.delete(
|
await userGroupMembershipDAL.delete(
|
||||||
{
|
{
|
||||||
groupId: group.id,
|
groupId: group.id,
|
||||||
userId
|
userId
|
||||||
},
|
},
|
||||||
tx
|
tx
|
||||||
|
);
|
||||||
|
})()
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
await Promise.all(promises);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (membersToRemoveFromGroupPending.length) {
|
if (membersToRemoveFromGroupPending.length) {
|
||||||
|
|||||||
Reference in New Issue
Block a user