@osimatic/helpers-js 1.0.25 → 1.0.26
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/changelog.txt +3 -0
- package/network.js +59 -17
- package/package.json +1 -1
package/changelog.txt
CHANGED
|
@@ -31,3 +31,6 @@ getDateObjectSelected(lien) -> getSelectedDate(lien.closest('.form-group')
|
|
|
31
31
|
selectFormDate(lien) -> setSelectedDate(lien.closest('.form-group')
|
|
32
32
|
majSelectPeriode() / majSelectCompare() -> updatePeriodSelect(form)
|
|
33
33
|
|
|
34
|
+
let URL_REFRESH = ... -> HTTPRequest.setRefreshTokenUrl(URL_REFRESH)
|
|
35
|
+
let _httpHeaders = {...} -> HTTPRequest.setHeader(key, value);
|
|
36
|
+
let httpHeaders = {...} -> HTTPRequest.setHeader(key, value);
|
package/network.js
CHANGED
|
@@ -1,5 +1,35 @@
|
|
|
1
1
|
|
|
2
2
|
class HTTPRequest {
|
|
3
|
+
static setRefreshTokenUrl(url) {
|
|
4
|
+
this.refreshTokenUrl = url;
|
|
5
|
+
}
|
|
6
|
+
static setRefreshTokenCallback(callback) {
|
|
7
|
+
this.refreshTokenCallback = callback;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
static setHeader(key, value) {
|
|
11
|
+
if (typeof this.headers == 'undefined') {
|
|
12
|
+
this.headers = {};
|
|
13
|
+
}
|
|
14
|
+
this.headers[key] = value;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
static getHeaders() {
|
|
18
|
+
//if (typeof httpHeaders != 'undefined') {
|
|
19
|
+
// return httpHeaders;
|
|
20
|
+
//}
|
|
21
|
+
|
|
22
|
+
if (typeof this.headers == 'undefined') {
|
|
23
|
+
this.headers = {};
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
let httpHeaders = new Headers();
|
|
27
|
+
Object.entries(this.headers).forEach(([key, value]) => {
|
|
28
|
+
httpHeaders.append(key, value);
|
|
29
|
+
});
|
|
30
|
+
return httpHeaders;
|
|
31
|
+
}
|
|
32
|
+
|
|
3
33
|
static async get(url, data, successCallback, errorCallback) {
|
|
4
34
|
if (data == null) {
|
|
5
35
|
data = '';
|
|
@@ -14,7 +44,7 @@ class HTTPRequest {
|
|
|
14
44
|
if (window.fetch) {
|
|
15
45
|
let requestInit = {
|
|
16
46
|
method: 'GET',
|
|
17
|
-
headers:
|
|
47
|
+
headers: HTTPRequest.getHeaders(),
|
|
18
48
|
mode: 'cors',
|
|
19
49
|
cache: 'no-cache'
|
|
20
50
|
}
|
|
@@ -24,9 +54,10 @@ class HTTPRequest {
|
|
|
24
54
|
try {
|
|
25
55
|
jsonData = await response.json();
|
|
26
56
|
//console.log(url, jsonData);
|
|
57
|
+
//console.log(response.status, response.statusText, jsonData['error']);
|
|
27
58
|
|
|
28
|
-
if (response.status == 401 && response.statusText == "Expired JWT Token") {
|
|
29
|
-
HTTPRequest.refreshToken(
|
|
59
|
+
if (response.status == 401 && (response.statusText == "Expired JWT Token" || typeof jsonData['error'] != 'undefined' && jsonData['error'] === 'expired_token')) {
|
|
60
|
+
HTTPRequest.refreshToken(() => HTTPRequest.get(url, data, successCallback, errorCallback));
|
|
30
61
|
return;
|
|
31
62
|
}
|
|
32
63
|
|
|
@@ -49,13 +80,13 @@ class HTTPRequest {
|
|
|
49
80
|
$.ajax({
|
|
50
81
|
type: 'GET',
|
|
51
82
|
url: url + (!url.includes('?') ? '?' : '') + data,
|
|
52
|
-
headers:
|
|
83
|
+
headers: HTTPRequest.getHeaders(),
|
|
53
84
|
dataType: 'json',
|
|
54
85
|
cache: false,
|
|
55
86
|
success: (data) => successCallback(data),
|
|
56
87
|
error: (jqxhr, status, exception) => {
|
|
57
88
|
if (typeof jqxhr.responseJSON != 'undefined' && jqxhr.responseJSON.code == 401 && jqxhr.responseJSON.message == "Expired JWT Token") {
|
|
58
|
-
HTTPRequest.refreshToken(
|
|
89
|
+
HTTPRequest.refreshToken(() => HTTPRequest.get(url, data, successCallback, errorCallback));
|
|
59
90
|
} else {
|
|
60
91
|
errorCallback(jqxhr, status, exception);
|
|
61
92
|
}
|
|
@@ -78,7 +109,7 @@ class HTTPRequest {
|
|
|
78
109
|
if (window.fetch) {
|
|
79
110
|
let requestInit = {
|
|
80
111
|
method: 'GET',
|
|
81
|
-
headers:
|
|
112
|
+
headers: HTTPRequest.getHeaders(),
|
|
82
113
|
mode: 'cors',
|
|
83
114
|
cache: 'no-cache'
|
|
84
115
|
}
|
|
@@ -90,7 +121,7 @@ class HTTPRequest {
|
|
|
90
121
|
console.log(blobData);*/
|
|
91
122
|
|
|
92
123
|
if (response.status == 401 && response.statusText == "Expired JWT Token") {
|
|
93
|
-
HTTPRequest.refreshToken(
|
|
124
|
+
HTTPRequest.refreshToken(() => HTTPRequest.download(url, data, errorCallback, completeCallback));
|
|
94
125
|
return;
|
|
95
126
|
}
|
|
96
127
|
|
|
@@ -118,7 +149,7 @@ class HTTPRequest {
|
|
|
118
149
|
$.ajax({
|
|
119
150
|
type: 'GET',
|
|
120
151
|
url: url + (!url.includes('?') ? '?' : '') + data,
|
|
121
|
-
headers:
|
|
152
|
+
headers: HTTPRequest.getHeaders(),
|
|
122
153
|
cache: false,
|
|
123
154
|
xhrFields: {
|
|
124
155
|
responseType: 'blob'
|
|
@@ -126,7 +157,7 @@ class HTTPRequest {
|
|
|
126
157
|
success: (data, status, jqxhr) => File.download(data, jqxhr.getResponseHeader('Content-Type'), jqxhr.getResponseHeader('Content-Disposition')),
|
|
127
158
|
error: (jqxhr, status, exception) => {
|
|
128
159
|
if (typeof jqxhr.responseJSON != 'undefined' && jqxhr.responseJSON.code == 401 && jqxhr.responseJSON.message == "Expired JWT Token") {
|
|
129
|
-
HTTPRequest.refreshToken(
|
|
160
|
+
HTTPRequest.refreshToken(() => HTTPRequest.download(url, data, errorCallback, completeCallback));
|
|
130
161
|
} else if (typeof errorCallback != 'undefined' && errorCallback != null) {
|
|
131
162
|
errorCallback(jqxhr, status, exception);
|
|
132
163
|
}
|
|
@@ -144,7 +175,7 @@ class HTTPRequest {
|
|
|
144
175
|
let requestInit = {
|
|
145
176
|
method: 'POST',
|
|
146
177
|
body: formData,
|
|
147
|
-
headers:
|
|
178
|
+
headers: HTTPRequest.getHeaders(),
|
|
148
179
|
mode: 'cors',
|
|
149
180
|
cache: 'no-cache'
|
|
150
181
|
};
|
|
@@ -156,8 +187,8 @@ class HTTPRequest {
|
|
|
156
187
|
jsonData = await response.json();
|
|
157
188
|
//console.log(url, jsonData);
|
|
158
189
|
|
|
159
|
-
if (response.status == 401 && response.statusText == "Expired JWT Token") {
|
|
160
|
-
HTTPRequest.refreshToken(
|
|
190
|
+
if (response.status == 401 && (response.statusText == "Expired JWT Token" || typeof jsonData['error'] != 'undefined' && jsonData['error'] === 'expired_token')) {
|
|
191
|
+
HTTPRequest.refreshToken(() => HTTPRequest.post(url, formData, successCallback, errorCallback, formErrorCallback));
|
|
161
192
|
return;
|
|
162
193
|
}
|
|
163
194
|
|
|
@@ -186,7 +217,7 @@ class HTTPRequest {
|
|
|
186
217
|
$.ajax({
|
|
187
218
|
type: 'POST',
|
|
188
219
|
url: url,
|
|
189
|
-
headers:
|
|
220
|
+
headers: HTTPRequest.getHeaders(),
|
|
190
221
|
dataType: 'json', // 22/09/2020 : à voir si cette ligne pose pb (utilisé pour requete import et peut être d'autres
|
|
191
222
|
data: formData,
|
|
192
223
|
cache: false,
|
|
@@ -195,7 +226,7 @@ class HTTPRequest {
|
|
|
195
226
|
success: (data) => successCallback(data),
|
|
196
227
|
error: (jqxhr, status, exception) => {
|
|
197
228
|
if (typeof jqxhr.responseJSON != 'undefined' && jqxhr.responseJSON.code == 401 && jqxhr.responseJSON.message == "Expired JWT Token") {
|
|
198
|
-
HTTPRequest.refreshToken(
|
|
229
|
+
HTTPRequest.refreshToken(() => HTTPRequest.post(url, formData, successCallback, errorCallback, formErrorCallback));
|
|
199
230
|
} else if (jqxhr.status == 400 && typeof formErrorCallback != 'undefined' && formErrorCallback != null) {
|
|
200
231
|
formErrorCallback(jqxhr, status, exception);
|
|
201
232
|
} else {
|
|
@@ -205,16 +236,27 @@ class HTTPRequest {
|
|
|
205
236
|
});
|
|
206
237
|
}
|
|
207
238
|
|
|
208
|
-
static refreshToken(
|
|
239
|
+
static refreshToken(onCompleteCallback) {
|
|
240
|
+
if (typeof this.refreshTokenCallback == 'function') {
|
|
241
|
+
this.refreshTokenCallback(onCompleteCallback);
|
|
242
|
+
return;
|
|
243
|
+
}
|
|
244
|
+
|
|
245
|
+
if (typeof this.refreshTokenUrl == 'undefined') {
|
|
246
|
+
console.error('URL refresh token non définie. Appeler HTTPRequest.setRefreshTokenUrl(url)');
|
|
247
|
+
return;
|
|
248
|
+
}
|
|
249
|
+
|
|
209
250
|
let payload = new FormData();
|
|
210
251
|
payload.append('refresh_token', JwtSession.getRefreshToken());
|
|
211
252
|
|
|
212
|
-
HTTPRequest.post(
|
|
253
|
+
HTTPRequest.post(this.refreshTokenUrl, payload,
|
|
213
254
|
(data) => {
|
|
214
255
|
JwtSession.setToken(data.token);
|
|
215
256
|
JwtSession.setRefreshToken(data.refresh_token);
|
|
216
257
|
onCompleteCallback();
|
|
217
|
-
},
|
|
258
|
+
},
|
|
259
|
+
(jqxhr, status, exception) => {
|
|
218
260
|
console.log(exception);
|
|
219
261
|
JwtSession.logout();
|
|
220
262
|
}
|