@osimatic/helpers-js 1.1.62 → 1.1.64
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/http_client.js +34 -28
- package/package.json +1 -1
package/http_client.js
CHANGED
|
@@ -1,5 +1,9 @@
|
|
|
1
1
|
|
|
2
2
|
class HTTPClient {
|
|
3
|
+
static setAuthorizationToken(authorizationToken) {
|
|
4
|
+
HTTPClient.authorizationToken = authorizationToken;
|
|
5
|
+
}
|
|
6
|
+
|
|
3
7
|
// URL appelée pour rafraichir le token. Le token est mis à jour dans JwtSession. En cas de succès, on appelle HTTPClient.onSuccessRefreshTokenCallback et on réexécute toutes les requêtes HTTP en attente de nouveau token. En cas d'échec, on redirige vers HTTPClient.onInvalidRefreshTokenRedirectUrl et/ou on appelle HTTPClient.onInvalidRefreshTokenCallback.
|
|
4
8
|
static setRefreshTokenUrl(url) {
|
|
5
9
|
HTTPClient.refreshTokenUrl = url;
|
|
@@ -28,11 +32,25 @@ class HTTPClient {
|
|
|
28
32
|
HTTPClient.onInvalidTokenCallback = callback;
|
|
29
33
|
}
|
|
30
34
|
|
|
31
|
-
static getHeaders(asObject=false, additionalHeaders={}) {
|
|
32
|
-
|
|
35
|
+
static getHeaders(asObject=false, additionalHeaders={}, addAuthorizationHeader=true) {
|
|
36
|
+
let httpHeadersData = {};
|
|
33
37
|
|
|
34
|
-
if (typeof HTTPClient.headers
|
|
35
|
-
HTTPClient.headers =
|
|
38
|
+
if (typeof HTTPClient.headers != 'undefined' && null != HTTPClient.headers) {
|
|
39
|
+
HTTPClient.headers['Authorization'] = null;
|
|
40
|
+
httpHeadersData = HTTPClient.headers;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
if (addAuthorizationHeader) {
|
|
44
|
+
const authorizationToken = typeof HTTPClient.authorizationToken != 'undefined' && null != HTTPClient.authorizationToken ? HTTPClient.authorizationToken : JwtSession.getToken();
|
|
45
|
+
if (null != authorizationToken && '' !== authorizationToken) {
|
|
46
|
+
httpHeadersData['Authorization'] = 'Bearer ' + authorizationToken;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
if (null != additionalHeaders && typeof additionalHeaders == 'object') {
|
|
51
|
+
for (const [key, value] of Object.entries(additionalHeaders)) {
|
|
52
|
+
httpHeadersData[key] = value;
|
|
53
|
+
}
|
|
36
54
|
}
|
|
37
55
|
|
|
38
56
|
if (asObject) {
|
|
@@ -43,13 +61,6 @@ class HTTPClient {
|
|
|
43
61
|
Object.entries(HTTPClient.headers).forEach(([key, value]) => {
|
|
44
62
|
httpHeaders.append(key, value);
|
|
45
63
|
});
|
|
46
|
-
|
|
47
|
-
if (typeof additionalHeaders == 'object') {
|
|
48
|
-
for (const [key, value] of Object.entries(additionalHeaders)) {
|
|
49
|
-
httpHeaders.append(key, value);
|
|
50
|
-
}
|
|
51
|
-
}
|
|
52
|
-
|
|
53
64
|
return httpHeaders;
|
|
54
65
|
}
|
|
55
66
|
|
|
@@ -69,18 +80,6 @@ class HTTPClient {
|
|
|
69
80
|
HTTPClient.headers[key] = value;
|
|
70
81
|
}
|
|
71
82
|
|
|
72
|
-
static setAuthorizationToken(authorizationToken) {
|
|
73
|
-
if (typeof HTTPClient.headers == 'undefined') {
|
|
74
|
-
HTTPClient.headers = {};
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
if (typeof authorizationToken == 'undefined' || null == authorizationToken) {
|
|
78
|
-
return;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
HTTPClient.headers['Authorization'] = 'Bearer ' + authorizationToken;
|
|
82
|
-
}
|
|
83
|
-
|
|
84
83
|
static convertObjectToFormData(obj) {
|
|
85
84
|
// 30/05/2022 : ancienne version, qui ne fonctionne pas avec des tableaux
|
|
86
85
|
// let formData = new FormData();
|
|
@@ -198,7 +197,7 @@ class HTTPClient {
|
|
|
198
197
|
JwtSession.logout(HTTPClient.onInvalidTokenRedirectUrl, HTTPClient.onInvalidTokenCallback);
|
|
199
198
|
}
|
|
200
199
|
|
|
201
|
-
static async request(method, url, data, successCallback=null, errorCallback=null, formErrorCallback=null, additionalHeaders={}) {
|
|
200
|
+
static async request(method, url, data, successCallback=null, errorCallback=null, formErrorCallback=null, additionalHeaders={}, sendAuthorizationHeader=true) {
|
|
202
201
|
if (!window.fetch) {
|
|
203
202
|
return;
|
|
204
203
|
}
|
|
@@ -206,7 +205,7 @@ class HTTPClient {
|
|
|
206
205
|
let body = null;
|
|
207
206
|
method = method.toUpperCase();
|
|
208
207
|
|
|
209
|
-
let headers = HTTPClient.getHeaders(false, additionalHeaders);
|
|
208
|
+
let headers = HTTPClient.getHeaders(false, additionalHeaders, sendAuthorizationHeader);
|
|
210
209
|
|
|
211
210
|
if ('PATCH' === method || 'DELETE' === method) {
|
|
212
211
|
headers.append('Content-Type', 'application/x-www-form-urlencoded');
|
|
@@ -345,9 +344,13 @@ class HTTPClient {
|
|
|
345
344
|
}
|
|
346
345
|
}
|
|
347
346
|
else {
|
|
348
|
-
|
|
347
|
+
let json = null;
|
|
348
|
+
if (response.headers.get('Content-Type') === 'application/json') {
|
|
349
|
+
json = await response.json();
|
|
350
|
+
}
|
|
351
|
+
HTTPClient.logRequestFailure(response, json);
|
|
349
352
|
if (typeof errorCallback == 'function') {
|
|
350
|
-
errorCallback(response);
|
|
353
|
+
errorCallback(response, json);
|
|
351
354
|
}
|
|
352
355
|
}
|
|
353
356
|
}
|
|
@@ -411,7 +414,10 @@ class HTTPClient {
|
|
|
411
414
|
if (typeof errorCallback == 'function') {
|
|
412
415
|
errorCallback();
|
|
413
416
|
}
|
|
414
|
-
}
|
|
417
|
+
},
|
|
418
|
+
null,
|
|
419
|
+
null,
|
|
420
|
+
false
|
|
415
421
|
);
|
|
416
422
|
}
|
|
417
423
|
|