mirror of
https://github.com/christianvidalwolf-prog/Craze-Data-check.git
synced 2026-08-03 16:35:24 +02:00
Improve Supabase error reporting for diagnostic purposes
This commit is contained in:
+5
-5
@@ -327,10 +327,10 @@ export default function App() {
|
|||||||
try {
|
try {
|
||||||
for (const [articleNo, { newData, originalData, articleName }] of entries) {
|
for (const [articleNo, { newData, originalData, articleName }] of entries) {
|
||||||
console.log('[handleSaveAll] Saving article:', articleNo);
|
console.log('[handleSaveAll] Saving article:', articleNo);
|
||||||
const success = await saveRowToSupabase(articleNo, newData, token);
|
const result = await saveRowToSupabase(articleNo, newData, token);
|
||||||
console.log('[handleSaveAll] Save result for', articleNo, ':', success);
|
console.log('[handleSaveAll] Save result for', articleNo, ':', result);
|
||||||
|
|
||||||
if (success) {
|
if (result.success) {
|
||||||
// Also save to history
|
// Also save to history
|
||||||
await saveHistoryEntry(articleNo, articleName, originalData, newData, session?.user?.email || 'unknown', token);
|
await saveHistoryEntry(articleNo, articleName, originalData, newData, session?.user?.email || 'unknown', token);
|
||||||
|
|
||||||
@@ -342,14 +342,14 @@ export default function App() {
|
|||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
setRowStatuses(prev => ({ ...prev, [articleNo]: 'error' }));
|
setRowStatuses(prev => ({ ...prev, [articleNo]: 'error' }));
|
||||||
failedArticles.push(articleNo);
|
failedArticles.push(`${articleNo} [${result.error || 'Unknown error'}]`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log('[handleSaveAll] Finished loop. Failed:', failedArticles.length);
|
console.log('[handleSaveAll] Finished loop. Failed:', failedArticles.length);
|
||||||
|
|
||||||
if (failedArticles.length > 0) {
|
if (failedArticles.length > 0) {
|
||||||
alert(`Failed to save ${failedArticles.length} items: ${failedArticles.join(', ')}. Please try again.`);
|
alert(`Failed to save items:\n\n${failedArticles.join('\n')}\n\nPlease try again.`);
|
||||||
} else {
|
} else {
|
||||||
setAppState(prev => ({ ...prev, hasUnsavedChanges: false }));
|
setAppState(prev => ({ ...prev, hasUnsavedChanges: false }));
|
||||||
}
|
}
|
||||||
|
|||||||
+24
-8
@@ -33,7 +33,7 @@ export async function getAllSyncedRows(token?: string): Promise<Record<string, S
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function saveRowToSupabase(articleNo: string, rowData: ExcelRow, token?: string): Promise<boolean> {
|
export async function saveRowToSupabase(articleNo: string, rowData: ExcelRow, token?: string): Promise<{ success: boolean; error?: string }> {
|
||||||
try {
|
try {
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${SUPABASE_URL}/rest/v1/products`,
|
`${SUPABASE_URL}/rest/v1/products`,
|
||||||
@@ -54,10 +54,18 @@ export async function saveRowToSupabase(articleNo: string, rowData: ExcelRow, to
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
return response.ok || response.status === 201;
|
if (!response.ok) {
|
||||||
} catch (error) {
|
const err = await response.json().catch(() => ({}));
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
error: `${response.status} ${response.statusText}: ${err.message || err.error_description || 'Unknown error'}`
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return { success: true };
|
||||||
|
} catch (error: any) {
|
||||||
console.error('Error saving to Supabase:', error);
|
console.error('Error saving to Supabase:', error);
|
||||||
return false;
|
return { success: false, error: error.message || 'Network error' };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -78,7 +86,7 @@ export async function saveHistoryEntry(
|
|||||||
newData: ExcelRow,
|
newData: ExcelRow,
|
||||||
changedBy: string,
|
changedBy: string,
|
||||||
token?: string
|
token?: string
|
||||||
): Promise<boolean> {
|
): Promise<{ success: boolean; error?: string }> {
|
||||||
try {
|
try {
|
||||||
const response = await fetch(
|
const response = await fetch(
|
||||||
`${SUPABASE_URL}/rest/v1/products_history`,
|
`${SUPABASE_URL}/rest/v1/products_history`,
|
||||||
@@ -101,10 +109,18 @@ export async function saveHistoryEntry(
|
|||||||
}
|
}
|
||||||
);
|
);
|
||||||
|
|
||||||
return response.ok;
|
if (!response.ok) {
|
||||||
} catch (error) {
|
const err = await response.json().catch(() => ({}));
|
||||||
|
return {
|
||||||
|
success: false,
|
||||||
|
error: `History ${response.status}: ${err.message || 'Unknown error'}`
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return { success: true };
|
||||||
|
} catch (error: any) {
|
||||||
console.error('Error saving history to Supabase:', error);
|
console.error('Error saving history to Supabase:', error);
|
||||||
return false;
|
return { success: false, error: error.message || 'Network error' };
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user