feat: add axios handler

This commit is contained in:
Javier Segarra 2025-04-02 23:28:13 +02:00
parent 8ef7f531fb
commit d93a2b3f23
1 changed files with 34 additions and 11 deletions

View File

@ -24,17 +24,6 @@ const onRequestError = error => {
const onResponseError = error => {
const userStore = useUserStore();
let message = error.message;
const response = error.response;
const responseData = response && response.data;
const responseError = responseData && response.data.error;
if (responseError) {
message = responseError.message;
}
notify(message, 'negative');
if (userStore.isLoggedIn && response?.status === 401) {
if (!Router) return;
@ -73,6 +62,40 @@ export default boot(({ app }) => {
// so you can easily perform requests against your app's API
app.config.globalProperties.$jApi = jApi;
app.config.errorHandler = async error => {
let message;
const response = error.response;
const responseData = response?.data;
const responseError = responseData && response.data.error;
if (responseError) {
message = responseError.message;
}
switch (response?.status) {
case 422:
if (error.name == 'ValidationError')
message +=
' "' +
responseError.details.context +
'.' +
Object.keys(responseError.details.codes).join(',') +
'"';
break;
case 500:
message = 'errors.statusInternalServerError';
break;
case 502:
message = 'errors.statusBadGateway';
break;
case 504:
message = 'errors.statusGatewayTimeout';
break;
}
console.error(error);
notify(message ?? 'globals.error', 'negative', 'error');
};
app.provide('jApi', jApi);
app.provide('api', api);
});