maj
This commit is contained in:
@@ -22,7 +22,16 @@ class BenchAPI {
|
||||
|
||||
if (!response.ok) {
|
||||
const errorData = await response.json().catch(() => ({}));
|
||||
throw new Error(errorData.detail || `HTTP ${response.status}: ${response.statusText}`);
|
||||
const errorMessage = errorData.detail || errorData.message || `HTTP ${response.status}: ${response.statusText}`;
|
||||
|
||||
// Create a detailed error object
|
||||
const apiError = new Error(errorMessage);
|
||||
apiError.status = response.status;
|
||||
apiError.statusText = response.statusText;
|
||||
apiError.endpoint = endpoint;
|
||||
apiError.response = errorData;
|
||||
|
||||
throw apiError;
|
||||
}
|
||||
|
||||
// Handle 204 No Content
|
||||
@@ -30,9 +39,21 @@ class BenchAPI {
|
||||
return null;
|
||||
}
|
||||
|
||||
return await response.json();
|
||||
const contentType = response.headers.get('content-type');
|
||||
if (contentType && contentType.includes('application/json')) {
|
||||
return await response.json();
|
||||
}
|
||||
|
||||
// Return text for non-JSON responses
|
||||
return await response.text();
|
||||
} catch (error) {
|
||||
console.error(`API Error [${endpoint}]:`, error);
|
||||
|
||||
// Handle network errors
|
||||
if (error.name === 'TypeError' && error.message === 'Failed to fetch') {
|
||||
error.message = 'Impossible de se connecter au serveur backend. Vérifiez que le service est démarré.';
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user