import {useContext} from 'react'
import AuthContext from "../context/auth-context";


const useCachedFetch = () => {

    const authCtx = useContext(AuthContext)

    const fetchData = async (apiCall: any) => {

        try {
            const response = await apiCall()
            return response
        } catch (error: any) {
            // Any status codes that falls outside the range of 2xx cause this function to trigger
            // Do something with response error
            if (error.response) {
                // Request made and server responded
                if(error.response.status === 401){
                    authCtx.logoutUser()
                    return
                }
            } else if (error.request) {
                // The request was made but no response was received
            } else {
                // Something happened in setting up the request that triggered an Error
            }
            return Promise.reject(error);
        }
    };


    return {fetchData};
}


export default useCachedFetch;