Files
sign/packages/lib/server-only/user/delete-user.ts

48 lines
870 B
TypeScript
Raw Normal View History

2023-10-05 11:38:51 +03:00
import { prisma } from '@documenso/prisma';
2023-10-14 00:20:11 +11:00
export type DeleteUserOptions = {
email: string;
};
2023-10-14 00:20:11 +11:00
export const deleteUser = async ({ email }: DeleteUserOptions) => {
2023-10-05 11:38:51 +03:00
const user = await prisma.user.findFirst({
where: {
2023-10-12 12:19:23 +03:00
email: {
contains: email,
2023-10-05 11:38:51 +03:00
},
},
});
const defaultDeleteUser = await prisma.user.findFirst({
where: {
email: 'deleted@documenso.com',
},
});
2023-10-05 11:38:51 +03:00
if (!user) {
2023-10-12 12:19:23 +03:00
throw new Error(`User with email ${email} not found`);
2023-10-05 11:38:51 +03:00
}
if (!defaultDeleteUser) {
throw new Error(`Default delete account not found`);
}
await prisma.document.updateMany({
where: {
userId: user.id,
status: {
in: ['PENDING', 'COMPLETED'],
},
},
data: {
userId: defaultDeleteUser.id,
},
});
2023-10-05 11:38:51 +03:00
return await prisma.user.delete({
where: {
id: user.id,
},
});
};