Proyectos de Subversion LeadersLinked - SPA

Rev

Rev 797 | Rev 802 | Ir a la última revisión | Mostrar el archivo completo | | | Autoría | Ultima modificación | Ver Log |

Rev 797 Rev 801
Línea 4... Línea 4...
4
  #client
4
  #client
5
  #abortController
5
  #abortController
Línea 6... Línea 6...
6
 
6
 
7
  constructor(baseURL, timeout = 5000) {
7
  constructor(baseURL, timeout = 5000) {
-
 
8
    this.#client = axios.create({ baseURL, timeout })
-
 
9
 
-
 
10
    this.#client.interceptors.request.use(
-
 
11
      async (request) => {
-
 
12
        const token = window.localStorage.getItem('jwt')
-
 
13
 
-
 
14
        if (token) {
-
 
15
          request.headers.Authorization = 'Bearer ' + token
-
 
16
        }
-
 
17
 
-
 
18
        if (['post', 'put', 'delete'].includes(request.method)) {
-
 
19
          try {
-
 
20
            const { data: responseData } = await this.MakeRequest.get('/csrf')
-
 
21
            const { data, success } = responseData
-
 
22
 
-
 
23
            if (success) {
-
 
24
              request.headers['X-CSRF-TOKEN'] = data
-
 
25
              return request
-
 
26
            }
-
 
27
          } catch (err) {
-
 
28
            throw new Error(
-
 
29
              `Axios problem with request during pre-flight phase: ${err}.`
-
 
30
            )
-
 
31
          }
-
 
32
        }
-
 
33
 
-
 
34
        if (['get'].includes(request.method)) {
-
 
35
          const headers = {
-
 
36
            Accept: 'application/json',
-
 
37
            Vary: 'Accept',
-
 
38
            'Cache-Control': 'no-cache, no-store',
-
 
39
            'Content-Type': 'application/json'
-
 
40
          }
-
 
41
          request.headers = { ...request.headers, ...headers }
-
 
42
          return request
-
 
43
        }
-
 
44
 
-
 
45
        return request
-
 
46
      },
-
 
47
      (error) => {
-
 
48
        return Promise.reject(error)
-
 
49
      }
-
 
50
    )
8
    this.#client = axios.create({ baseURL, timeout })
51
 
9
    this.#abortController = new AbortController()
52
    this.#abortController = new AbortController()
Línea 10... Línea 53...
10
  }
53
  }
11
 
54