mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange.git
synced 2026-08-19 20:34:08 +00:00
56 lines
1.3 KiB
JavaScript
56 lines
1.3 KiB
JavaScript
import axios from 'axios'
|
|
import store from '~/store'
|
|
import router from '~/router'
|
|
import swal from 'sweetalert2'
|
|
import i18n from '~/plugins/i18n'
|
|
|
|
// Request interceptor
|
|
axios.interceptors.request.use(request => {
|
|
const token = store.getters['auth/token']
|
|
if (token) {
|
|
request.headers.common['Authorization'] = `Bearer ${token}`
|
|
}
|
|
|
|
const locale = store.getters['lang/locale']
|
|
if (locale) {
|
|
request.headers.common['Accept-Language'] = locale
|
|
}
|
|
|
|
// request.headers['X-Socket-Id'] = Echo.socketId()
|
|
|
|
return request
|
|
})
|
|
|
|
// Response interceptor
|
|
axios.interceptors.response.use(response => response, error => {
|
|
const { status } = error.response
|
|
|
|
if (status >= 500) {
|
|
swal({
|
|
type: 'error',
|
|
title: i18n.t('error_alert_title'),
|
|
text: i18n.t('error_alert_text'),
|
|
reverseButtons: true,
|
|
confirmButtonText: i18n.t('ok'),
|
|
cancelButtonText: i18n.t('cancel')
|
|
})
|
|
}
|
|
|
|
if (status === 401 && store.getters['auth/check']) {
|
|
swal({
|
|
type: 'warning',
|
|
title: i18n.t('token_expired_alert_title'),
|
|
text: i18n.t('token_expired_alert_text'),
|
|
reverseButtons: true,
|
|
confirmButtonText: i18n.t('ok'),
|
|
cancelButtonText: i18n.t('cancel')
|
|
}).then(async () => {
|
|
await store.dispatch('auth/logout')
|
|
|
|
router.push({ name: 'login' })
|
|
})
|
|
}
|
|
|
|
return Promise.reject(error)
|
|
})
|