Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

Rev 5245 | | Comparar con el anterior | Ultima modificación | Ver Log |

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