mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-23 04:51:13 -05:00
Fix account deletion flow
This commit is contained in:
@@ -39,16 +39,27 @@ serve(async (req) => {
|
||||
|
||||
edgeLogger.info('Cancelling deletion request', { action: 'cancel_deletion', userId: user.id, requestId: tracking.requestId });
|
||||
|
||||
// Find pending deletion request
|
||||
// Find pending or confirmed deletion request
|
||||
const { data: deletionRequest, error: requestError } = await supabaseClient
|
||||
.from('account_deletion_requests')
|
||||
.select('*')
|
||||
.eq('user_id', user.id)
|
||||
.eq('status', 'pending')
|
||||
.in('status', ['pending', 'confirmed'])
|
||||
.maybeSingle();
|
||||
|
||||
if (requestError || !deletionRequest) {
|
||||
throw new Error('No pending deletion request found');
|
||||
throw new Error('No active deletion request found');
|
||||
}
|
||||
|
||||
// Validate that deletion hasn't already been processed
|
||||
if (deletionRequest.status === 'completed') {
|
||||
throw new Error('This deletion request has already been completed');
|
||||
}
|
||||
|
||||
// Validate scheduled deletion hasn't passed
|
||||
const scheduledDate = new Date(deletionRequest.scheduled_deletion_at);
|
||||
if (scheduledDate < new Date()) {
|
||||
throw new Error('Cannot cancel - deletion has already been processed');
|
||||
}
|
||||
|
||||
// Cancel deletion request
|
||||
@@ -99,6 +110,7 @@ serve(async (req) => {
|
||||
<h2>Account Deletion Cancelled</h2>
|
||||
<p>Your account deletion request has been cancelled on ${new Date().toLocaleDateString()}.</p>
|
||||
<p>Your account has been reactivated and you can continue using all features.</p>
|
||||
<p>If you did not cancel this request, please contact support immediately.</p>
|
||||
<p>Welcome back!</p>
|
||||
`,
|
||||
}),
|
||||
|
||||
Reference in New Issue
Block a user