Files
documenso/packages/lib/server-only/user/delete-user.ts
2024-02-15 11:33:43 +00:00

50 lines
995 B
TypeScript

import { prisma } from '@documenso/prisma';
import { DocumentStatus } from '@documenso/prisma/client';
export type DeleteUserOptions = {
email: string;
};
export const deletedServiceAccount = async ({ email }: DeleteUserOptions) => {
const user = await prisma.user.findFirst({
where: {
email: {
contains: email,
},
},
});
const defaultDeleteUser = await prisma.user.findFirst({
where: {
email: 'deleted@documenso.com',
},
});
if (!user) {
throw new Error(`User with email ${email} not found`);
}
if (!defaultDeleteUser) {
throw new Error(`Default delete account not found`);
}
await prisma.document.updateMany({
where: {
userId: user.id,
status: {
in: [DocumentStatus.PENDING, DocumentStatus.COMPLETED],
},
},
data: {
userId: defaultDeleteUser.id,
deletedAt: new Date(),
},
});
return await prisma.user.delete({
where: {
id: user.id,
},
});
};