http.js 2.03 KB
import axios from 'axios'
import store from '@/store/store'
import Vue from 'vue'
import { vm1 } from "@/main.js"

const baseDomain = "https://api-dashboard.intrack.in/v1";

const baseURL = `${baseDomain}`;
// var token = ""
// if (store.state.role === "ADMIN") {
//     token = `${store.state.token}`
// } else if (store.state.schoolRole === "SUPERADMIN") {
//     token = `${store.state.schoolToken}`
// }

// console.log("role",`${store.state.schoolRole}`);
// console.log("token",`${store.state.schoolToken}`);

export default () => {
    // return axios.create({
    //     // baseURL: 'http://192.168.2.221:3002/v1',
    //     baseURL,
    //     headers: {
    //         Authorization: `Bearer ${store.state.token}`
    //     }
    // })
    let instance = axios.create({
        // LIVE
        //baseURL: 'https://annadata.patanjaliayurved.org/api',
        // DEVELOPMENT
        baseURL: baseURL,

        headers: {
            Authorization: `Bearer ${store.state.token}`,
            // 'Access-Control-Allow-Origin': '*'

        }
    })

    instance.interceptors.request.use((config) => {
        // Do something before request is sent

        return config
    }, error => {
        return Promise.reject(error)
    })
    instance.interceptors.response.use((response) => {
            // do something with the response data


            return response;
        }, error => {
            // handle the response error
            console.log("error in interceptor - ", error.response.status)
            var customError
            const errorNo = error.response.status

            switch (errorNo) {
                case 401:
                    customError = "Session expired"
                    console.log("what is this - ", vm1)
                    vm1.$store.dispatch("setToken", null);
                    vm1.$router.replace({ path: "/" });

                    vm1.$store.dispatch("Id", null);

                    break;
            }

            return Promise.reject(error);
        })
        // response parse

    return instance;
}