import { createClient } from '@supabase/supabase-js' import dotenv from 'dotenv' dotenv.config() // Initialize Supabase client if (!process.env.SUPABASE_URL || !process.env.SUPABASE_ANON_KEY) { throw new Error('Missing Supabase environment variables') } // Initialize Supabase client const supabase = createClient( process.env.SUPABASE_URL, process.env.SUPABASE_ANON_KEY ) /** * Save an answer to the Supabase database. * @param {string} teamName - Name of the team. * @param {number} questionNumber - Question number. * @param {string} answer - The answer. * @returns {Promise<{ success: boolean, error?: string }>} */ export async function saveAnswer(teamName, questionNumber, answer) { try { // Check for duplicate submissions const { data: existingEntry, error: fetchError } = await supabase .from('quiz_answers') .select('*') .eq('team_name', teamName) .eq('question_number', questionNumber) .single() if (fetchError && fetchError.code !== 'PGRST116') { return { success: false, error: 'Error checking for duplicate submission.', } } if (existingEntry) { return { success: false, error: 'Duplicate submission detected.' } } // Insert new entry const { error: insertError } = await supabase.from('quiz_answers').insert({ team_name: teamName, question_number: questionNumber, answer, created_at: new Date().toISOString(), }) if (insertError) { console.error('Error saving the answer:', insertError) return { success: false, error: 'Error saving the answer.' } } return { success: true } } catch (error) { console.error('Error in saveAnswer:', error) return { success: false, error: 'Unexpected error occurred.' } } } /** * Delete all answers from the quiz_answers table. * @returns {Promise<{ success: boolean, error?: string }>}. */ export async function deleteAllAnswers() { try { // Delete all entries by matching rows with id >= 0 const { error: deleteError } = await supabase .from('quiz_answers') .delete() .gte('id', -1) if (deleteError) { console.error('Error deleting answers:', deleteError) return { success: false, error: 'Error deleting answers.' } } return { success: true } } catch (error) { console.error('Error in deleteAllAnswers:', error) return { success: false, error: 'Unexpected error occurred.' } } }