Louis Mazin d424689e12 big maj
2026-09-24 19:35:37 +02:00

13 lines
600 B
JavaScript

export function getApiErrorMessage(error, fallback = 'La requête a échoué.') {
const flatten = (value, prefix = '') => {
if (Array.isArray(value)) return value.flatMap((item) => flatten(item, prefix));
if (value && typeof value === 'object') {
return Object.entries(value).flatMap(([key, item]) =>
flatten(item, ['detail', 'error', 'non_field_errors'].includes(key) ? prefix : key),
);
}
return typeof value === 'string' ? [`${prefix ? `${prefix} : ` : ''}${value}`] : [];
};
return flatten(error.response?.data).join(' ') || error.message || fallback;
}