Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 7399 | Ir a la última revisión | | Comparar con el anterior | Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
6493 stevensc 1
import Axios from 'axios'
2
 
3
export const cancelToken = Axios.CancelToken.source()
4
 
7400 stevensc 5
const axiosInstance = Axios.create()
6493 stevensc 6
 
7396 stevensc 7
axiosInstance.all = Axios.all
8
axiosInstance.spread = Axios.spread
7395 stevensc 9
 
7396 stevensc 10
axiosInstance.upload = (url, data) => {
11
  return axiosInstance.post(url, new FormData(data), {
6493 stevensc 12
    headers: {
7385 stevensc 13
      'Content-Type': 'multipart/form-data',
14
    },
6493 stevensc 15
  })
16
}
17
 
7397 stevensc 18
axiosInstance.interceptors.request.use(
6493 stevensc 19
  async (request) => {
7395 stevensc 20
    request.headers.ORIGIN = window.location.host
7400 stevensc 21
    request.baseURL = 'https://dev-services.leaderslinked.com'
7395 stevensc 22
 
6493 stevensc 23
    if (['post', 'put', 'delete'].includes(request.method)) {
24
      try {
7397 stevensc 25
        const resp = await axiosInstance.get('/csrf')
6493 stevensc 26
        if (resp.data.success) {
27
          request.headers['X-CSRF-TOKEN'] = resp.data.data
28
 
29
          return request
30
        }
31
      } catch (err) {
7385 stevensc 32
        throw new Error(
33
          `Axios problem with request during pre-flight phase: ${err}.`
34
        )
6493 stevensc 35
      }
36
    }
37
  },
38
  (error) => {
39
    return Promise.reject(error)
40
  }
41
)
7400 stevensc 42
 
43
axiosInstance.get = (_url, params = {}) => {
44
  let url = _url
45
  if (!_url.includes('t=')) {
46
    if (_url.includes('?')) {
47
      url += '&'
48
    } else {
49
      url += '?'
50
    }
51
    url += 't=' + new Date().getTime()
52
  }
53
  return Axios({
54
    method: 'GET',
55
    baseURL: 'https://dev-services.leaderslinked.com',
56
    url,
57
    params,
58
    headers: {
59
      Accept: 'application/json',
60
      Vary: 'Accept',
61
      'Cache-Control': 'no-cache, no-store',
62
    },
63
  })
64
}
65
 
7397 stevensc 66
export default axiosInstance