2020-10-02 07:13:14 +00:00
|
|
|
import axios, { AxiosInstance } from 'axios';
|
|
|
|
import { boot } from 'quasar/wrappers';
|
2020-10-16 11:07:31 +00:00
|
|
|
import { Token, UserStateInterface } from 'src/plugins/user/store/user';
|
2020-10-16 07:38:14 +00:00
|
|
|
import config from '../config';
|
2020-10-02 07:13:14 +00:00
|
|
|
|
|
|
|
declare module 'vue/types/vue' {
|
|
|
|
interface Vue {
|
|
|
|
$axios: AxiosInstance;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2020-10-15 01:35:44 +00:00
|
|
|
export default boot(({ Vue, store }) => {
|
2020-10-02 07:13:14 +00:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
|
|
Vue.prototype.$axios = axios;
|
2020-10-15 01:35:44 +00:00
|
|
|
axios.defaults.baseURL = config.baseURL;
|
|
|
|
|
2020-10-16 07:38:14 +00:00
|
|
|
axios.interceptors.request.use(config => {
|
2020-10-16 11:07:31 +00:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
|
|
const token: Token = (<UserStateInterface>store.state.user).token;
|
2020-10-16 07:38:14 +00:00
|
|
|
if (token) {
|
2020-10-16 11:07:31 +00:00
|
|
|
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
2020-10-16 07:38:14 +00:00
|
|
|
config.headers['Authorization'] = 'Token ' + token.token;
|
|
|
|
}
|
|
|
|
return config;
|
|
|
|
});
|
2020-10-02 07:13:14 +00:00
|
|
|
});
|
2020-10-15 09:23:41 +00:00
|
|
|
|
|
|
|
export { axios };
|