mirror of
https://github.com/pacnpal/thrilltrack-explorer.git
synced 2025-12-21 06:31:13 -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);
|
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
|
// Delete profile
|
||||||
const { error: profileError } = await supabaseAdmin
|
const { error: profileError } = await supabaseAdmin
|
||||||
.from('profiles')
|
.from('profiles')
|
||||||
|
|||||||
@@ -75,6 +75,42 @@ serve(async (req) => {
|
|||||||
.delete()
|
.delete()
|
||||||
.eq('user_id', deletion.user_id);
|
.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
|
// Delete profile
|
||||||
await supabaseAdmin
|
await supabaseAdmin
|
||||||
.from('profiles')
|
.from('profiles')
|
||||||
|
|||||||
Reference in New Issue
Block a user