From 5ca76701c2a24ded6181b93511ac9aa13a2387c1 Mon Sep 17 00:00:00 2001 From: Angelina Filippova Date: Tue, 2 Mar 2021 00:22:26 +0300 Subject: [PATCH] Fix displaying messages for multiple errors --- src/utils/request.js | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/utils/request.js b/src/utils/request.js index b7e3d5f1..163ce872 100644 --- a/src/utils/request.js +++ b/src/utils/request.js @@ -6,27 +6,32 @@ const service = axios.create({ timeout: 60000 // request timeout }) +const isJson = ({ headers }) => headers['content-type'].includes('application/json') + // response interceptor service.interceptors.response.use( response => response, error => { - let errorMessage console.log(`Error ${error}`) - if (error.response) { - const edata = error.response.data.error ? error.response.data.error : error.response.data - errorMessage = !error.response.headers['content-type'].includes('application/json') - ? `${error.message}` - : `${error.message} - ${edata}` + if (!error.response) { + Message({ + message: error, + type: 'error', + duration: 5 * 1000 + }) } else { - errorMessage = error + const errors = Array.isArray(error.response.data) ? error.response.data : [error.response.data] + errors.forEach(errorData => { + const edata = errorData.error || errorData + Message({ + message: isJson(error.response) ? `${error.message} - ${edata}` : `${error.message}`, + type: 'error', + duration: 5 * 1000 + }) + }) } - Message({ - message: errorMessage, - type: 'error', - duration: 5 * 1000 - }) return Promise.reject(error) } )