chore: use transaction (#13874)

* fix: use transaction

* chore
This commit is contained in:
Udit Takkar
2024-02-27 10:17:46 -03:00
committed by GitHub
parent 858be0f5d8
commit 27c25e1f95
2 changed files with 32 additions and 28 deletions
@@ -23,17 +23,20 @@ export const deleteHandler = async ({ ctx, input }: DeleteOptions) => {
if (IS_TEAM_BILLING_ENABLED) await cancelTeamSubscriptionFromStripe(input.teamId);
// delete all memberships
await prisma.membership.deleteMany({
where: {
teamId: input.teamId,
},
});
const deletedTeam = await prisma.$transaction(async (tx) => {
// delete all memberships
await tx.membership.deleteMany({
where: {
teamId: input.teamId,
},
});
const deletedTeam = await prisma.team.delete({
where: {
id: input.teamId,
},
const deletedTeam = await tx.team.delete({
where: {
id: input.teamId,
},
});
return deletedTeam;
});
const deletedTeamMetadata = teamMetadataSchema.parse(deletedTeam.metadata);
@@ -43,25 +43,26 @@ export const removeMemberHandler = async ({ ctx, input }: RemoveMemberOptions) =
message: "You can not remove yourself from a team you own.",
});
const membership = await ctx.prisma.membership.delete({
where: {
userId_teamId: { userId: input.memberId, teamId: input.teamId },
},
include: {
user: true,
team: true,
},
});
// remove user as host from team events associated with this membership
await ctx.prisma.host.deleteMany({
where: {
userId: input.memberId,
eventType: {
teamId: input.teamId,
const [membership] = await ctx.prisma.$transaction([
ctx.prisma.membership.delete({
where: {
userId_teamId: { userId: input.memberId, teamId: input.teamId },
},
},
});
include: {
user: true,
team: true,
},
}),
// remove user as host from team events associated with this membership
ctx.prisma.host.deleteMany({
where: {
userId: input.memberId,
eventType: {
teamId: input.teamId,
},
},
}),
]);
if (input.isOrg) {
log.debug("Removing a member from the organization");