|  | import Axios from 'axios'; | 
|  | //Do not change store import. | 
|  | //Exact match alias set to support | 
|  | //dotenv customizations. | 
|  | import store from '../store'; | 
|  |  | 
|  | const api = Axios.create({ | 
|  | withCredentials: true, | 
|  | }); | 
|  |  | 
|  | api.interceptors.response.use(undefined, (error) => { | 
|  | let response = error.response; | 
|  |  | 
|  | // TODO: Provide user with a notification and way to keep system active | 
|  | if (response.status == 401) { | 
|  | if (response.config.url != '/login') { | 
|  | window.location = '/login'; | 
|  | // Commit logout to remove XSRF-TOKEN cookie | 
|  | store.commit('authentication/logout'); | 
|  | } | 
|  | } | 
|  |  | 
|  | if (response.status == 403) { | 
|  | // Check if action is unauthorized. | 
|  | // Toast error message will appear on screen | 
|  | // when the action is unauthorized. | 
|  | store.commit('global/setUnauthorized'); | 
|  | } | 
|  |  | 
|  | return Promise.reject(error); | 
|  | }); | 
|  |  | 
|  | export default { | 
|  | get(path) { | 
|  | return api.get(path); | 
|  | }, | 
|  | delete(path, payload) { | 
|  | return api.delete(path, payload); | 
|  | }, | 
|  | post(path, payload, config) { | 
|  | return api.post(path, payload, config); | 
|  | }, | 
|  | patch(path, payload) { | 
|  | return api.patch(path, payload); | 
|  | }, | 
|  | put(path, payload) { | 
|  | return api.put(path, payload); | 
|  | }, | 
|  | all(promises) { | 
|  | return Axios.all(promises); | 
|  | }, | 
|  | spread(callback) { | 
|  | return Axios.spread(callback); | 
|  | }, | 
|  | }; | 
|  |  | 
|  | export const getResponseCount = (responses) => { | 
|  | let successCount = 0; | 
|  | let errorCount = 0; | 
|  |  | 
|  | responses.forEach((response) => { | 
|  | if (response instanceof Error) errorCount++; | 
|  | else successCount++; | 
|  | }); | 
|  |  | 
|  | return { | 
|  | successCount, | 
|  | errorCount, | 
|  | }; | 
|  | }; |