Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 7400 | | 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) => {
7400 stevensc 20
    request.baseURL = 'https://dev-services.leaderslinked.com'
7395 stevensc 21
 
6493 stevensc 22
    if (['post', 'put', 'delete'].includes(request.method)) {
23
      try {
7397 stevensc 24
        const resp = await axiosInstance.get('/csrf')
6493 stevensc 25
        if (resp.data.success) {
26
          request.headers['X-CSRF-TOKEN'] = resp.data.data
27
 
28
          return request
29
        }
30
      } catch (err) {
7385 stevensc 31
        throw new Error(
32
          `Axios problem with request during pre-flight phase: ${err}.`
33
        )
6493 stevensc 34
      }
35
    }
36
  },
37
  (error) => {
38
    return Promise.reject(error)
39
  }
40
)
7400 stevensc 41
 
42
axiosInstance.get = (_url, params = {}) => {
43
  let url = _url
44
  if (!_url.includes('t=')) {
45
    if (_url.includes('?')) {
46
      url += '&'
47
    } else {
48
      url += '?'
49
    }
50
    url += 't=' + new Date().getTime()
51
  }
52
  return Axios({
53
    method: 'GET',
54
    baseURL: 'https://dev-services.leaderslinked.com',
55
    url,
56
    params,
57
    headers: {
58
      Accept: 'application/json',
59
      Vary: 'Accept',
60
      'Cache-Control': 'no-cache, no-store',
61
    },
62
  })
63
}
64
 
7397 stevensc 65
export default axiosInstance