feat: delete user from db and unsubscribe from stripe

This commit is contained in:
Ephraim Atta-Duncan
2024-01-20 23:30:56 +00:00
parent f652ca9b73
commit a3e560899a
6 changed files with 98 additions and 15 deletions

View File

@ -10,3 +10,9 @@ export const ZSignUpMutationSchema = z.object({
export type TSignUpMutationSchema = z.infer<typeof ZSignUpMutationSchema>;
export const ZVerifyPasswordMutationSchema = ZSignUpMutationSchema.pick({ password: true });
export const ZDeleteAccountMutationSchema = z.object({
email: z.string().email(),
});
export type TDeleteAccountMutationSchema = z.infer<typeof ZDeleteAccountMutationSchema>;

View File

@ -1,5 +1,7 @@
import { TRPCError } from '@trpc/server';
import { deleteStripeCustomer } from '@documenso/ee/server-only/stripe/delete-customer';
import { deleteUser } from '@documenso/lib/server-only/user/delete-user';
import { forgotPassword } from '@documenso/lib/server-only/user/forgot-password';
import { getUserById } from '@documenso/lib/server-only/user/get-user-by-id';
import { resetPassword } from '@documenso/lib/server-only/user/reset-password';
@ -133,4 +135,27 @@ export const profileRouter = router({
});
}
}),
deleteAccount: authenticatedProcedure.mutation(async ({ ctx }) => {
try {
const user = ctx.user;
const deletedUser = await deleteStripeCustomer(user);
console.log(deletedUser);
return await deleteUser(user);
} catch (err) {
let message = 'We were unable to delete your account. Please try again.';
if (err instanceof Error) {
message = err.message;
}
throw new TRPCError({
code: 'BAD_REQUEST',
message,
});
}
}),
});