Update user-service.ts

This commit is contained in:
Daniel Hougaard
2024-06-11 04:04:42 +02:00
parent b31d2be3f3
commit 985116c6f2
+45
View File
@@ -133,6 +133,50 @@ export const userServiceFactory = ({
tx tx
); );
} }
} else {
const existingUserWithUsername = await userDAL.findOne({
username: email
});
if (existingUserWithUsername && existingUserWithUsername.id !== user.id) {
// merge users
const mergeUserOrgMembershipSet = new Set(
(await orgMembershipDAL.find({ userId: existingUserWithUsername.id }, { tx })).map((m) => m.orgId)
);
const myOrgMemberships = (await orgMembershipDAL.find({ userId: user.id }, { tx })).filter(
(m) => !mergeUserOrgMembershipSet.has(m.orgId)
);
const userAliases = await userAliasDAL.find(
{
userId: user.id
},
{ tx }
);
// delete current user
await userDAL.deleteById(user.id, tx);
if (myOrgMemberships.length) {
await orgMembershipDAL.insertMany(
myOrgMemberships.map((orgMembership) => ({
...orgMembership,
userId: existingUserWithUsername.id
})),
tx
);
}
if (userAliases.length) {
await userAliasDAL.insertMany(
userAliases.map((userAlias) => ({
...userAlias,
userId: existingUserWithUsername.id
})),
tx
);
}
} else { } else {
// update current user's username to [email] // update current user's username to [email]
await userDAL.updateById( await userDAL.updateById(
@@ -143,6 +187,7 @@ export const userServiceFactory = ({
tx tx
); );
} }
}
}); });
}; };