From 1c19be85c324cf3b0006ce51f88ad77a91710ce9 Mon Sep 17 00:00:00 2001 From: MakerLab-Dev Date: Thu, 30 Jan 2020 20:47:51 +0100 Subject: [PATCH] Improved error handling --- resources/assets/js/bootstrap.js | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/resources/assets/js/bootstrap.js b/resources/assets/js/bootstrap.js index 81a69b2e..c15095f8 100644 --- a/resources/assets/js/bootstrap.js +++ b/resources/assets/js/bootstrap.js @@ -88,17 +88,27 @@ window.axios.interceptors.request.use(function (config) { global.axios.interceptors.response.use(undefined, function (err) { // Do something with request error - return new Promise((resolve, reject) => { + if (!err.response) { + window.toastr['error']('Network error: Please check your internet connection or wait until servers are back online') + console.log('Network error: Please check your internet connection.') + } else { console.log(err.response) - if (err.response.data.error === 'invalid_credentials') { - window.toastr['error']('Invalid Credentials') - } if (err.response.data && (err.response.statusText === 'Unauthorized' || err.response.data === ' Unauthorized.')) { + // Unauthorized and log out + window.toastr['error']((err.response.data.message) ? err.response.data.message : 'Unauthorized') store.dispatch('auth/logout', true) + } else if (err.response.data.errors) { + // Show a notification per error + const errors = JSON.parse(JSON.stringify(err.response.data.errors)) + for (const i in errors) { + window.toastr['error'](errors[i]) + } } else { - throw err + // Unknown error + window.toastr['error']((err.response.data.message) ? err.response.data.message : 'Unknown error occurred') } - }) + } + return Promise.reject(err) }) /**