Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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