From 6bd49aee020eced1eace8e4a8a92c5210c66b228 Mon Sep 17 00:00:00 2001 From: zramsay Date: Wed, 12 Mar 2025 09:28:25 -0400 Subject: [PATCH] :build fix --- src/services/userPointsService.ts | 50 +++++++++++++++++++++---------- 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/src/services/userPointsService.ts b/src/services/userPointsService.ts index 8725b4c..bd2c035 100644 --- a/src/services/userPointsService.ts +++ b/src/services/userPointsService.ts @@ -41,24 +41,44 @@ export async function ensureUserExists(userId: string, email: string, name?: str // Fallback to direct insert try { - const { data: insertData, error: insertError } = await supabaseAdmin + // First check if the user already exists + const { data: existingUser, error: checkError } = await supabaseAdmin .from('users') - .insert({ - id: userId, - email: email, - name: name || null, - first_login: new Date().toISOString(), - last_login: new Date().toISOString() - }) - .onConflict('id') - .merge({ last_login: new Date().toISOString() }); + .select('id') + .eq('id', userId) + .maybeSingle(); - if (insertError) { - console.error('Error inserting user:', insertError); - return null; + if (!checkError && existingUser) { + // User exists, update last_login + const { error: updateError } = await supabaseAdmin + .from('users') + .update({ last_login: new Date().toISOString() }) + .eq('id', userId); + + if (updateError) { + console.warn('Error updating user last_login:', updateError); + } + + return userId; + } else { + // User doesn't exist, insert new user + const { data: insertData, error: insertError } = await supabaseAdmin + .from('users') + .insert({ + id: userId, + email: email, + name: name || null, + first_login: new Date().toISOString(), + last_login: new Date().toISOString() + }); + + if (insertError) { + console.error('Error inserting user:', insertError); + return null; + } + + return userId; } - - return userId; } catch (err) { console.error('Error in fallback user creation:', err); return null;