Proyectos de Subversion LeadersLinked - Backend

Rev

Autoría | Ultima modificación | Ver Log |

import Axios from "axios";

let axios = Axios.create({
  baseURL: '',
});

axios.get = (_url, params = {}) => {
  let url = _url
  if (!_url.includes('t=')) {
    if (_url.includes('?'))
      url += '&'
    else
      url += '?'
    url += 't=' + new Date().getTime()
  }
  return Axios.get(url, {
    headers: {
      'Accept': 'application/json',
      'Vary': 'Accept',
      'Cache-Control': 'no-cache, no-store'
    },
    params
  });
}

axios.all = Axios.all;
axios.spread = Axios.spread;
axios.upload = (url, data) => {
  return axios.post(url, createFormData(data), {
    headers: {
      'Content-Type': 'multipart/form-data'
    }
  });
}

axios.interceptors.request.use(
  async (request) => {
    if (['post', 'put', 'delete'].includes(request.method)) {
      try {
        const resp = await axios.get('/csrf')
        if (resp.data.success) {
          request.headers['X-CSRF-TOKEN'] = resp.data.data
          
          return request;
        }
      }
      catch (err) {
        throw new Error(`Axios problem with request during pre-flight phase: ${err}.`);
      }
    }
  },
  (error) => {
    return Promise.reject(error);
  }
);
export default axios