Files
2025_Vuejs_Mpi_Panel/src/init/axios-init.ts
2025-07-24 15:17:26 +03:00

59 lines
1.7 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import axios from 'axios'
import { useUsersStore } from '@/stores/usersStore'
import router from '@/router'
axios.defaults.baseURL = 'https://panelapi.cekilisevi.gov.tr/'
//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