Proyectos de Subversion LeadersLinked - Antes de SPA

Rev

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