import axios from "axios";
import Cookies from 'js-cookie';
import { CustomToast } from "../CustomToast";
import { ChatBaseURL, ChatRestAPIKey } from "./Endpoints";

const instance = axios.create({
    baseURL: ChatBaseURL,
});

const ChatCustomFetch = async ({ ...options }, customURL: any, customHeaders, noMessage: any = true) => {
    if (customURL) {
        instance.defaults.baseURL = customURL;
    }
    if (customHeaders) {
        instance.defaults.headers.post['Content-Type'] = 'multipart/form-data';
    } else {
        instance.defaults.headers.post['Content-Type'] = 'application/json';
    }
    instance.defaults.headers.apikey = ChatRestAPIKey
    const onSuccess = (response: any) => {
        return response
    }
    const onError = (error: any) => {
        console.log("error144", error);
        return error
    }
    try {
        const response = await instance(options)
        return onSuccess(response);
    } catch (error: any) {
        if (error?.response?.status == 401) {
            // Cookies.remove('aat')
            // Cookies.remove('bat')
            // Cookies.remove('iat')
            // Cookies.remove('verifyUAT')
            // Cookies.remove('user_info');

            // localStorage.clear();
            // sessionStorage.clear();
            // CustomToast("error", error?.response?.data?.message)
            // window.location.href = '/login';
            // return;
        }

        noMessage ? CustomToast("error", error?.response?.data?.message) : null
        return onError(error)
    }
}

export default ChatCustomFetch