mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-20 16:11:12 -05:00
Refactor avatar deletion logic
This commit is contained in:
@@ -102,6 +102,42 @@ serve(async (req) => {
|
||||
console.error('Error deleting user roles:', rolesError);
|
||||
}
|
||||
|
||||
// Get profile to check for avatar before deletion
|
||||
const { data: profile } = await supabaseAdmin
|
||||
.from('profiles')
|
||||
.select('avatar_image_id')
|
||||
.eq('user_id', user.id)
|
||||
.maybeSingle();
|
||||
|
||||
// Delete avatar from Cloudflare Images if it exists
|
||||
if (profile?.avatar_image_id) {
|
||||
const cloudflareAccountId = Deno.env.get('VITE_CLOUDFLARE_ACCOUNT_ID');
|
||||
const cloudflareApiToken = Deno.env.get('CLOUDFLARE_API_TOKEN');
|
||||
|
||||
if (cloudflareAccountId && cloudflareApiToken) {
|
||||
try {
|
||||
console.log(`Deleting avatar image: ${profile.avatar_image_id}`);
|
||||
const deleteResponse = await fetch(
|
||||
`https://api.cloudflare.com/client/v4/accounts/${cloudflareAccountId}/images/v1/${profile.avatar_image_id}`,
|
||||
{
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Authorization': `Bearer ${cloudflareApiToken}`,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
if (!deleteResponse.ok) {
|
||||
console.error('Failed to delete avatar from Cloudflare:', await deleteResponse.text());
|
||||
} else {
|
||||
console.log('Avatar deleted from Cloudflare successfully');
|
||||
}
|
||||
} catch (avatarError) {
|
||||
console.error('Error deleting avatar from Cloudflare:', avatarError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete profile
|
||||
const { error: profileError } = await supabaseAdmin
|
||||
.from('profiles')
|
||||
|
||||
@@ -75,6 +75,42 @@ serve(async (req) => {
|
||||
.delete()
|
||||
.eq('user_id', deletion.user_id);
|
||||
|
||||
// Get profile to check for avatar before deletion
|
||||
const { data: profile } = await supabaseAdmin
|
||||
.from('profiles')
|
||||
.select('avatar_image_id')
|
||||
.eq('user_id', deletion.user_id)
|
||||
.maybeSingle();
|
||||
|
||||
// Delete avatar from Cloudflare Images if it exists
|
||||
if (profile?.avatar_image_id) {
|
||||
const cloudflareAccountId = Deno.env.get('VITE_CLOUDFLARE_ACCOUNT_ID');
|
||||
const cloudflareApiToken = Deno.env.get('CLOUDFLARE_API_TOKEN');
|
||||
|
||||
if (cloudflareAccountId && cloudflareApiToken) {
|
||||
try {
|
||||
console.log(`Deleting avatar image: ${profile.avatar_image_id}`);
|
||||
const deleteResponse = await fetch(
|
||||
`https://api.cloudflare.com/client/v4/accounts/${cloudflareAccountId}/images/v1/${profile.avatar_image_id}`,
|
||||
{
|
||||
method: 'DELETE',
|
||||
headers: {
|
||||
'Authorization': `Bearer ${cloudflareApiToken}`,
|
||||
},
|
||||
}
|
||||
);
|
||||
|
||||
if (!deleteResponse.ok) {
|
||||
console.error('Failed to delete avatar from Cloudflare:', await deleteResponse.text());
|
||||
} else {
|
||||
console.log('Avatar deleted from Cloudflare successfully');
|
||||
}
|
||||
} catch (avatarError) {
|
||||
console.error('Error deleting avatar from Cloudflare:', avatarError);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Delete profile
|
||||
await supabaseAdmin
|
||||
.from('profiles')
|
||||
|
||||
Reference in New Issue
Block a user