Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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