diff --git a/api/experiments.ts b/api/experiments.ts index 0adffc3..2557fe5 100644 --- a/api/experiments.ts +++ b/api/experiments.ts @@ -85,6 +85,7 @@ export default async function handler(req: VercelRequest, res: VercelResponse) { if (req.method === 'PUT') { const { id } = req.query; const updates = req.body; + console.log('Update payload for id', id, ':', updates); const { data, error } = await supabase .from('experiments') diff --git a/components/ExperimentDetail.tsx b/components/ExperimentDetail.tsx index 203ee56..1c2c924 100644 --- a/components/ExperimentDetail.tsx +++ b/components/ExperimentDetail.tsx @@ -55,9 +55,12 @@ const ExperimentDetail: React.FC = ({ experimentId, onClo setLoading(true); try { const perf = await calculateExperimentPerformance(experiment, salesData); + console.log('Calculation yielded performance delta payload:', perf); const updated = await updateExperiment(experiment.id, perf); + console.log('Update return from backend:', updated); setExperiment(updated); } catch (e: any) { + console.error('Full calculation error:', e); alert(`Error calculating results: ${e.message}`); } finally { setLoading(false); diff --git a/services/experiments.ts b/services/experiments.ts index 67f625f..ca6cdd1 100644 --- a/services/experiments.ts +++ b/services/experiments.ts @@ -59,18 +59,27 @@ export const updateExperiment = async ( id: string, updates: Partial ): Promise => { - const response = await fetch(`${API_BASE}?id=${id}`, { - method: 'PUT', - headers: { 'Content-Type': 'application/json' }, - body: JSON.stringify(updates), - }); + try { + const response = await fetch(`${API_BASE}?id=${id}`, { + method: 'PUT', + headers: { 'Content-Type': 'application/json' }, + body: JSON.stringify(updates), + }); - if (!response.ok) { - const error = await response.json(); - throw new Error(error.error || 'Failed to update experiment'); + if (!response.ok) { + let errText = await response.text(); + try { + const errJson = JSON.parse(errText); + errText = errJson.error || errText; + } catch (e) { } + throw new Error(errText); + } + + return response.json(); + } catch (err: any) { + console.error('API Error in updateExperiment:', err); + throw err; } - - return response.json(); }; export const deleteExperiment = async (id: string): Promise => {