Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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