Proyectos de Subversion LeadersLinked - SPA

Rev

| Ultima modificación | Ver Log |

Rev Autor Línea Nro. Línea
5 stevensc 1
import Axios from 'axios'
2
 
3
export const cancelToken = Axios.CancelToken.source()
4
 
5
const axiosInstance = Axios.create()
6
 
7
axiosInstance.all = Axios.all
8
axiosInstance.spread = Axios.spread
9
 
10
axiosInstance.upload = (url, data) => {
11
  return axiosInstance.post(url, new FormData(data), {
12
    headers: {
13
      'Content-Type': 'multipart/form-data',
14
    },
15
  })
16
}
17
 
18
axiosInstance.interceptors.request.use(
19
  async (request) => {
20
    request.headers.ORIGIN = window.location.host
21
    request.baseURL = 'https://dev-services.leaderslinked.com'
22
 
23
    if (['post', 'put', 'delete'].includes(request.method)) {
24
      try {
25
        const resp = await axiosInstance.get('/csrf')
26
        if (resp.data.success) {
27
          request.headers['X-CSRF-TOKEN'] = resp.data.data
28
 
29
          return request
30
        }
31
      } catch (err) {
32
        throw new Error(
33
          `Axios problem with request during pre-flight phase: ${err}.`
34
        )
35
      }
36
    }
37
  },
38
  (error) => {
39
    return Promise.reject(error)
40
  }
41
)
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
 
66
export default axiosInstance