@osimatic/helpers-js 1.2.1 → 1.2.3

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 CHANGED
@@ -13,6 +13,10 @@ class HTTPClient {
13
13
  HTTPClient.refreshTokenCallback = callback;
14
14
  }
15
15
 
16
+ static setGetRefreshTokenCallback(callback) {
17
+ HTTPClient.getRefreshTokenCallback = callback;
18
+ }
19
+
16
20
  static setOnSuccessRefreshTokenCallback(callback) {
17
21
  HTTPClient.onSuccessRefreshTokenCallback = callback;
18
22
  }
@@ -194,7 +198,11 @@ class HTTPClient {
194
198
  }
195
199
 
196
200
  static onInvalidToken() {
197
- JwtSession.logout(HTTPClient.onInvalidTokenRedirectUrl, HTTPClient.onInvalidTokenCallback);
201
+ if (typeof HTTPClient.onInvalidTokenCallback == 'function') {
202
+ HTTPClient.onInvalidTokenCallback();
203
+ return;
204
+ }
205
+ JwtSession.logout(HTTPClient.onInvalidTokenRedirectUrl);
198
206
  }
199
207
 
200
208
  static async request(method, url, data, successCallback=null, errorCallback=null, formErrorCallback=null, additionalHeaders={}, sendAuthorizationHeader=true) {
@@ -399,18 +407,30 @@ class HTTPClient {
399
407
  return;
400
408
  }
401
409
 
410
+ const refreshToken = typeof HTTPClient.getRefreshTokenCallback == 'function' ? HTTPClient.getRefreshTokenCallback() : JwtSession.getRefreshToken();
411
+
402
412
  console.log('HTTPClient.refreshToken : Appel HTTP vers HTTPClient.refreshTokenUrl');
403
413
  let payload = new FormData();
404
- payload.append('refresh_token', JwtSession.getRefreshToken());
414
+ payload.append('refresh_token', refreshToken);
405
415
 
406
416
  HTTPClient.request('POST', HTTPClient.refreshTokenUrl, payload,
407
417
  (data) => {
408
- JwtSession.updateToken(data['token'], data['refresh_token'], HTTPClient.onSuccessRefreshTokenCallback);
409
- HTTPClient.setAuthorizationToken(JwtSession.getToken());
418
+ if (typeof HTTPClient.onSuccessRefreshTokenCallback == 'function') {
419
+ HTTPClient.onSuccessRefreshTokenCallback(data['token'], data['refresh_token']);
420
+ }
421
+ else {
422
+ JwtSession.updateToken(data['token'], data['refresh_token']);
423
+ HTTPClient.setAuthorizationToken(JwtSession.getToken());
424
+ }
410
425
  onRefreshTokenComplete();
411
426
  },
412
427
  () => {
413
- JwtSession.expireSession(HTTPClient.onInvalidRefreshTokenRedirectUrl, HTTPClient.onInvalidRefreshTokenCallback);
428
+ if (typeof HTTPClient.onInvalidRefreshTokenCallback == 'function') {
429
+ HTTPClient.onInvalidRefreshTokenCallback();
430
+ }
431
+ else {
432
+ JwtSession.expireSession(HTTPClient.onInvalidRefreshTokenRedirectUrl);
433
+ }
414
434
  if (typeof errorCallback == 'function') {
415
435
  errorCallback();
416
436
  }
package/jwt.js CHANGED
@@ -32,6 +32,9 @@ class JwtToken {
32
32
  }
33
33
 
34
34
  class JwtSession {
35
+ /*static setStorage(storage) {
36
+ JwtSession.storage = storage;
37
+ }*/
35
38
  static setOnLoginCallback(callback) {
36
39
  JwtSession.onLoginCallback = callback;
37
40
  }
@@ -45,18 +48,28 @@ class JwtSession {
45
48
  JwtSession.onSessionExpireCallback = callback;
46
49
  }
47
50
 
51
+ static getItemInStorage(key) {
52
+ return localStorage.getItem(key);
53
+ }
54
+ static setItemInStorage(key, value) {
55
+ localStorage.setItem(key, value);
56
+ }
57
+ static removeItemInStorage(key) {
58
+ localStorage.removeItem(key);
59
+ }
60
+
48
61
  static getToken() {
49
- return localStorage.getItem('access_token');
62
+ return JwtSession.getItemInStorage('access_token');
50
63
  }
51
64
  static setToken(token) {
52
- localStorage.setItem('access_token', token);
65
+ JwtSession.setItemInStorage('access_token', token);
53
66
  }
54
67
 
55
68
  static getRefreshToken() {
56
- return localStorage.getItem('refresh_token');
69
+ return JwtSession.getItemInStorage('refresh_token');
57
70
  }
58
71
  static setRefreshToken(token) {
59
- localStorage.setItem('refresh_token', token);
72
+ JwtSession.setItemInStorage('refresh_token', token);
60
73
  }
61
74
 
62
75
  static login(data, redirectUrl, onComplete) {
@@ -64,7 +77,7 @@ class JwtSession {
64
77
  JwtSession.setToken(data['access_token'] || data['token']);
65
78
  JwtSession.setRefreshToken(data['refresh_token']);
66
79
 
67
- localStorage.removeItem('real_users');
80
+ JwtSession.removeItemInStorage('real_users');
68
81
 
69
82
  if (typeof JwtSession.onLoginCallback == 'function') {
70
83
  JwtSession.onLoginCallback();
@@ -90,16 +103,16 @@ class JwtSession {
90
103
  JwtSession.onNewTokenCallback();
91
104
  }
92
105
  if (typeof onComplete == 'function') {
93
- onComplete();
106
+ onComplete(accessToken, refreshToken);
94
107
  }
95
108
  }
96
109
 
97
110
  static logout(redirectUrl, onComplete) {
98
111
  console.log('JwtSession.logout()');
99
- localStorage.removeItem('access_token');
100
- localStorage.removeItem('refresh_token');
112
+ JwtSession.removeItemInStorage('access_token');
113
+ JwtSession.removeItemInStorage('refresh_token');
101
114
 
102
- localStorage.removeItem('real_users');
115
+ JwtSession.removeItemInStorage('real_users');
103
116
 
104
117
  if (typeof JwtSession.onLogoutCallback == 'function') {
105
118
  JwtSession.onLogoutCallback();
@@ -115,10 +128,10 @@ class JwtSession {
115
128
 
116
129
  static expireSession(redirectUrl, onComplete) {
117
130
  console.log('JwtSession.expireSession()');
118
- localStorage.removeItem('access_token');
119
- localStorage.removeItem('refresh_token');
131
+ JwtSession.removeItemInStorage('access_token');
132
+ JwtSession.removeItemInStorage('refresh_token');
120
133
 
121
- localStorage.removeItem('real_users');
134
+ JwtSession.removeItemInStorage('real_users');
122
135
 
123
136
  if (typeof JwtSession.onSessionExpireCallback == 'function') {
124
137
  JwtSession.onSessionExpireCallback();
@@ -137,7 +150,7 @@ class JwtSession {
137
150
  }
138
151
 
139
152
  static isAnonymous() {
140
- return localStorage.getItem('access_token') == null;
153
+ return JwtSession.getItemInStorage('access_token') == null;
141
154
  }
142
155
 
143
156
  static isGranted(role) {
@@ -159,8 +172,8 @@ class JwtSession {
159
172
 
160
173
  static getRealLoggedUsers() {
161
174
  let realUsers = [];
162
- if (localStorage.getItem('real_users') != null) {
163
- realUsers = JSON.parse(localStorage.getItem('real_users'));
175
+ if (JwtSession.getItemInStorage('real_users') != null) {
176
+ realUsers = JSON.parse(JwtSession.getItemInStorage('real_users'));
164
177
  }
165
178
  return realUsers;
166
179
  }
@@ -174,7 +187,7 @@ class JwtSession {
174
187
  access_token: JwtSession.getToken(),
175
188
  refresh_token: JwtSession.getRefreshToken(),
176
189
  });
177
- localStorage.setItem('real_users', JSON.stringify(realUsers));
190
+ JwtSession.setItemInStorage('real_users', JSON.stringify(realUsers));
178
191
 
179
192
  // on enregistre la session de l'utilisateur simulé
180
193
  JwtSession.setToken(loginData['access_token'] || loginData['token']);
@@ -200,7 +213,7 @@ class JwtSession {
200
213
  return;
201
214
  }
202
215
 
203
- localStorage.setItem('real_users', JSON.stringify(realUsers));
216
+ JwtSession.setItemInStorage('real_users', JSON.stringify(realUsers));
204
217
 
205
218
  JwtSession.setToken(loginData['access_token'] || loginData['token']);
206
219
  JwtSession.setRefreshToken(loginData['refresh_token']);
package/location.js CHANGED
@@ -427,6 +427,16 @@ class GeographicCoordinates {
427
427
  static check(str) {
428
428
  return /^[-+]?([1-8]?\d(\.\d+)?|90(\.0+)?),\s*[-+]?(180(\.0+)?|((1[0-7]\d)|([1-9]?\d))(\.\d+)?)$/.test(str);
429
429
  }
430
+
431
+ static parse(str) {
432
+ if (null === str || '' === str || 'NaN,NaN' === str) {
433
+ return null;
434
+ }
435
+
436
+ return str.split(',').map(str => str.trim()).join(',');
437
+ }
438
+
439
+
430
440
  }
431
441
 
432
442
  module.exports = { Country, PostalAddress, GeographicCoordinates };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@osimatic/helpers-js",
3
- "version": "1.2.1",
3
+ "version": "1.2.3",
4
4
  "main": "main.js",
5
5
  "scripts": {
6
6
  "test": "echo \"Error: no test specified\" && exit 1"