.
This commit is contained in:
59
src/init/axios-init.ts
Normal file
59
src/init/axios-init.ts
Normal file
@ -0,0 +1,59 @@
|
||||
import axios from 'axios'
|
||||
import { useUsersStore } from '@/stores/usersStore'
|
||||
import router from '@/router'
|
||||
|
||||
axios.defaults.baseURL = 'http://panel.cekilisevi.gov.tr:5001/'
|
||||
// axios.defaults.baseURL = 'https://localhost:7241/'
|
||||
//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
|
||||
Reference in New Issue
Block a user