mirror of
https://github.com/documenso/documenso.git
synced 2025-11-25 06:01:35 +10:00
chore: tidy code and extract alert-dialog
This commit is contained in:
@ -1,11 +1,13 @@
|
||||
import { prisma } from '@documenso/prisma';
|
||||
import { DocumentStatus } from '@documenso/prisma/client';
|
||||
|
||||
import { deletedAccountServiceAccount } from './service-accounts/deleted-account';
|
||||
|
||||
export type DeleteUserOptions = {
|
||||
email: string;
|
||||
};
|
||||
|
||||
export const deletedServiceAccount = async ({ email }: DeleteUserOptions) => {
|
||||
export const deleteUser = async ({ email }: DeleteUserOptions) => {
|
||||
const user = await prisma.user.findFirst({
|
||||
where: {
|
||||
email: {
|
||||
@ -14,20 +16,13 @@ export const deletedServiceAccount = async ({ email }: DeleteUserOptions) => {
|
||||
},
|
||||
});
|
||||
|
||||
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`);
|
||||
}
|
||||
const serviceAccount = await deletedAccountServiceAccount();
|
||||
|
||||
// TODO: Send out cancellations for all pending docs
|
||||
await prisma.document.updateMany({
|
||||
where: {
|
||||
userId: user.id,
|
||||
@ -36,7 +31,7 @@ export const deletedServiceAccount = async ({ email }: DeleteUserOptions) => {
|
||||
},
|
||||
},
|
||||
data: {
|
||||
userId: defaultDeleteUser.id,
|
||||
userId: serviceAccount.id,
|
||||
deletedAt: new Date(),
|
||||
},
|
||||
});
|
||||
|
||||
@ -0,0 +1,17 @@
|
||||
import { prisma } from '@documenso/prisma';
|
||||
|
||||
export const deletedAccountServiceAccount = async () => {
|
||||
const serviceAccount = await prisma.user.findFirst({
|
||||
where: {
|
||||
email: 'deleted-account@documenso.com',
|
||||
},
|
||||
});
|
||||
|
||||
if (!serviceAccount) {
|
||||
throw new Error(
|
||||
'Deleted account service account not found, have you ran the appropriate migrations?',
|
||||
);
|
||||
}
|
||||
|
||||
return serviceAccount;
|
||||
};
|
||||
@ -1,7 +1,7 @@
|
||||
-- Create deleted@documenso.com
|
||||
DO $$
|
||||
BEGIN
|
||||
IF NOT EXISTS (SELECT 1 FROM "public"."User" WHERE "email" = 'deleted@documenso.com') THEN
|
||||
IF NOT EXISTS (SELECT 1 FROM "public"."User" WHERE "email" = 'deleted-account@documenso.com') THEN
|
||||
INSERT INTO
|
||||
"public"."User" (
|
||||
"email",
|
||||
@ -16,7 +16,7 @@ BEGIN
|
||||
)
|
||||
VALUES
|
||||
(
|
||||
'deleted@documenso.com',
|
||||
'deleted-account@documenso.com',
|
||||
NOW(),
|
||||
NULL,
|
||||
NOW(),
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
import { TRPCError } from '@trpc/server';
|
||||
|
||||
import { deletedServiceAccount } from '@documenso/lib/server-only/user/delete-user';
|
||||
import { deleteUser } from '@documenso/lib/server-only/user/delete-user';
|
||||
import { findUserSecurityAuditLogs } from '@documenso/lib/server-only/user/find-user-security-audit-logs';
|
||||
import { forgotPassword } from '@documenso/lib/server-only/user/forgot-password';
|
||||
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
|
||||
@ -161,7 +161,7 @@ export const profileRouter = router({
|
||||
try {
|
||||
const user = ctx.user;
|
||||
|
||||
return await deletedServiceAccount(user);
|
||||
return await deleteUser(user);
|
||||
} catch (err) {
|
||||
let message = 'We were unable to delete your account. Please try again.';
|
||||
|
||||
|
||||
Reference in New Issue
Block a user