@osimatic/helpers-js 1.1.63 → 1.1.65
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 +28 -26
- package/network.js +6 -0
- 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');
|
|
@@ -415,7 +414,10 @@ class HTTPClient {
|
|
|
415
414
|
if (typeof errorCallback == 'function') {
|
|
416
415
|
errorCallback();
|
|
417
416
|
}
|
|
418
|
-
}
|
|
417
|
+
},
|
|
418
|
+
null,
|
|
419
|
+
null,
|
|
420
|
+
false
|
|
419
421
|
);
|
|
420
422
|
}
|
|
421
423
|
|
package/network.js
CHANGED
|
@@ -40,6 +40,12 @@ class UrlAndQueryString {
|
|
|
40
40
|
return (withLink ? '<a href="' + url + '">' : '') + formattedUrl + (withLink ? '</a>' : '');
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
+
static urlify(text) {
|
|
44
|
+
return text.replace(/(https?:\/\/[^\s]+)/g, url => '<a href="' + url + '">' + url + '</a>');
|
|
45
|
+
// or alternatively
|
|
46
|
+
// return text.replace(urlRegex, '<a href="$1">$1</a>')
|
|
47
|
+
}
|
|
48
|
+
|
|
43
49
|
static getHost(url, withProtocol=true) {
|
|
44
50
|
if (typeof url == 'undefined') {
|
|
45
51
|
return withProtocol ? window.location.origin : window.location.host;
|