60 lines
1.8 KiB
TypeScript
60 lines
1.8 KiB
TypeScript
import axios from 'axios'
|
||
import { useUsersStore } from '@/stores/usersStore'
|
||
import router from '@/router'
|
||
|
||
//axios.defaults.baseURL = 'https://panelapi.cekilisevi.gov.tr/'
|
||
axios.defaults.baseURL = 'https://mpiapi.beyaz.net/'
|
||
//axios.defaults.timeout = 2000;
|
||
axios.defaults.headers['Content-Type'] = 'application/json; charset=utf-8'
|
||
import { useDataStore } from '@/stores/dataStore'
|
||
|
||
// İstek Öncesinde Çalışacak Bir Fonksiyon
|
||
axios.interceptors.request.use(
|
||
function (config) {
|
||
const dataStore = useDataStore()
|
||
if (!dataStore.isLoading) dataStore.isLoading = true
|
||
// İstek gönderilmeden önce yapılacak işlemler
|
||
//console.log('İstek Yapılıyor:', config)
|
||
const token = sessionStorage.getItem('token')
|
||
|
||
if (!token) {
|
||
console.log('No token found')
|
||
} else {
|
||
config.headers['Authorization'] = `Bearer ${token}`
|
||
}
|
||
|
||
return config
|
||
},
|
||
function (error) {
|
||
// İstek gönderilmeden önce hata oluşursa burada yakalanır
|
||
return Promise.reject(error)
|
||
}
|
||
)
|
||
// İstek Sonrası Çalışacak Bir Fonksiyon
|
||
axios.interceptors.response.use(
|
||
function (response) {
|
||
const dataStore = useDataStore()
|
||
dataStore.isLoading = false
|
||
// Yanıt başarılı olursa yapılacak işlemler
|
||
//console.log('Yanıt Alındı:', response)
|
||
return response
|
||
},
|
||
function (error) {
|
||
const usersStore = useUsersStore()
|
||
const dataStore = useDataStore()
|
||
dataStore.isLoading = false
|
||
// Yanıtta hata oluşursa burada yakalanır
|
||
// error.status kodu undefined geliyor
|
||
if (error.response.status === 401) {
|
||
const token = sessionStorage.getItem(usersStore.userStorageKeys.TOKEN)
|
||
if (token !== undefined) {
|
||
usersStore.ResetUserData()
|
||
router.push('/login')
|
||
}
|
||
}
|
||
return Promise.reject(error)
|
||
}
|
||
)
|
||
|
||
export default axios
|