@wazo/sdk 0.39.0-beta.11 → 0.39.0-beta.13

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.
Files changed (40) hide show
  1. package/dist/wazo-sdk.js +3 -3
  2. package/esm/domain/Session.js +23 -0
  3. package/esm/service/getApiClient.js +1 -0
  4. package/esm/simple/Auth.js +30 -4
  5. package/esm/simple/Websocket.js +1 -0
  6. package/esm/types/domain/Session.d.ts +2 -0
  7. package/esm/types/domain/Session.d.ts.map +1 -1
  8. package/esm/types/service/getApiClient.d.ts +1 -0
  9. package/esm/types/service/getApiClient.d.ts.map +1 -1
  10. package/esm/types/simple/Auth.d.ts.map +1 -1
  11. package/esm/types/simple/Websocket.d.ts.map +1 -1
  12. package/esm/types/utils/api-requester.d.ts +1 -0
  13. package/esm/types/utils/api-requester.d.ts.map +1 -1
  14. package/esm/types/websocket-client.d.ts +5 -1
  15. package/esm/types/websocket-client.d.ts.map +1 -1
  16. package/esm/utils/api-requester.js +4 -2
  17. package/esm/websocket-client.js +9 -2
  18. package/lib/domain/Session.js +22 -0
  19. package/lib/service/getApiClient.js +3 -1
  20. package/lib/simple/Auth.js +26 -3
  21. package/lib/simple/Websocket.js +1 -0
  22. package/lib/types/domain/Session.d.ts +2 -0
  23. package/lib/types/domain/Session.d.ts.map +1 -1
  24. package/lib/types/service/getApiClient.d.ts +1 -0
  25. package/lib/types/service/getApiClient.d.ts.map +1 -1
  26. package/lib/types/simple/Auth.d.ts.map +1 -1
  27. package/lib/types/simple/Websocket.d.ts.map +1 -1
  28. package/lib/types/utils/api-requester.d.ts +1 -0
  29. package/lib/types/utils/api-requester.d.ts.map +1 -1
  30. package/lib/types/websocket-client.d.ts +5 -1
  31. package/lib/types/websocket-client.d.ts.map +1 -1
  32. package/lib/utils/api-requester.js +1 -1
  33. package/lib/websocket-client.js +8 -2
  34. package/package.json +1 -1
  35. package/src/domain/Session.ts +27 -0
  36. package/src/service/getApiClient.ts +2 -0
  37. package/src/simple/Auth.ts +44 -4
  38. package/src/simple/Websocket.ts +1 -0
  39. package/src/utils/api-requester.ts +5 -2
  40. package/src/websocket-client.ts +14 -1
@@ -1 +1 @@
1
- {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/websocket-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"websocket-client.d.ts","sourceRoot":"","sources":["../../src/websocket-client.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ const BadResponse_1 = __importDefault(require("../domain/BadResponse"));
22
22
  const ServerError_1 = __importDefault(require("../domain/ServerError"));
23
23
  const isMobile_1 = __importDefault(require("./isMobile"));
24
24
  const IssueReporter_1 = __importDefault(require("../service/IssueReporter"));
25
- const methods = ['head', 'get', 'post', 'put', 'delete'];
25
+ const methods = ['head', 'get', 'post', 'put', 'delete', 'options'];
26
26
  const logger = IssueReporter_1.default ? IssueReporter_1.default.loggerFor('api') : console;
27
27
  // Use a function here to be able to mock it in tests
28
28
  const realFetch = () => {
@@ -106,14 +106,16 @@ class WebSocketClient extends Emitter_1.default {
106
106
  * @param events
107
107
  * @param version
108
108
  * @param heartbeat
109
+ * @param session
109
110
  * @param options @see https://github.com/pladaria/reconnecting-websocket#available-options
110
111
  */
111
- constructor({ host, token, version, events, heartbeat, }, options = {
112
+ constructor({ host, token, version, events, heartbeat, session, }, options = {
112
113
  host,
113
114
  token,
114
115
  version: 1,
115
116
  events: [],
116
117
  heartbeat: {},
118
+ session: null,
117
119
  }) {
118
120
  super();
119
121
  this.initialized = false;
@@ -123,6 +125,7 @@ class WebSocketClient extends Emitter_1.default {
123
125
  this.events = events;
124
126
  this.options = options;
125
127
  this.version = version;
128
+ this.session = session;
126
129
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
127
130
  const { delay, timeout, max, } = heartbeat || {};
128
131
  this.heartbeat = new Heartbeat_1.default(delay, timeout, max);
@@ -350,7 +353,10 @@ class WebSocketClient extends Emitter_1.default {
350
353
  if (!this.host || !this.token) {
351
354
  this.close();
352
355
  }
353
- const url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
356
+ let url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
357
+ if (this.session) {
358
+ url += `&userUuid=${this.session.uuid}`;
359
+ }
354
360
  logger.info('Wazo WS url computed to reconnect', {
355
361
  url,
356
362
  });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wazo/sdk",
3
- "version": "0.39.0-beta.11",
3
+ "version": "0.39.0-beta.13",
4
4
  "description": "Wazo's JavaScript Software Development Kit.",
5
5
  "main": "dist/wazo-sdk.js",
6
6
  "author": "Wazo (http://wazo.io)",
@@ -72,6 +72,8 @@ type SessionArguments = {
72
72
  export default class Session {
73
73
  acl: string[];
74
74
 
75
+ contact?: Contact;
76
+
75
77
  token: string;
76
78
 
77
79
  refreshToken: string | null | undefined;
@@ -198,6 +200,31 @@ export default class Session {
198
200
  return this.profile && (this.profile.sipLines || []).find(sipLine => sipLine && !sipLine.isWebRtc());
199
201
  }
200
202
 
203
+ getContact(): Contact {
204
+ if (this.contact) {
205
+ return this.contact;
206
+ }
207
+
208
+ const { email, firstName, lastName, mobileNumber, state, status } = this.profile || {};
209
+ const number = this.primaryNumber() || '';
210
+ const numbers = [{ label: 'primary', number }];
211
+
212
+ if (mobileNumber) {
213
+ numbers.push({ label: 'mobile', number: mobileNumber });
214
+ }
215
+
216
+ return new Contact({
217
+ uuid: this.uuid || '',
218
+ email,
219
+ name: `${firstName} ${lastName}`,
220
+ number,
221
+ numbers,
222
+ state: state || '',
223
+ status,
224
+ backend: 'wazo',
225
+ });
226
+ }
227
+
201
228
  primaryContext(): string {
202
229
  if (this.engineVersion) {
203
230
  if (this.hasEngineVersionGte(MINIMUM_WAZO_ENGINE_VERSION_FOR_DEFAULT_CONTEXT)) {
@@ -53,6 +53,8 @@ export const setIsMobile = (isMobile: boolean, forServer: string | null | undefi
53
53
  export const setFetchOptions = (fetchOptions: Record<string, any>, forServer: string | null | undefined = null) => {
54
54
  global.wazoFetchOptions[String(forServer)] = fetchOptions;
55
55
  };
56
+ export const getFetchOptions = (forServer: string | null | undefined = null) =>
57
+ (forServer ? global.wazoFetchOptions[forServer] : global.wazoFetchOptions.null) || global.wazoFetchOptions.null;
56
58
 
57
59
  const fillClient = (apiClient: WazoApiClient) => {
58
60
  const {
@@ -1,7 +1,19 @@
1
1
  /* eslint-disable max-classes-per-file */
2
2
  import Session from '../domain/Session';
3
3
  import { BACKEND_LDAP_USER, DEFAULT_BACKEND_USER, DETAULT_EXPIRATION } from '../api/auth';
4
- import getApiClient, { setCurrentServer, setApiToken, setRefreshToken, setApiClientId, setRefreshExpiration, setOnRefreshToken, setFetchOptions, setRefreshTenantId, setRefreshDomainName, setOnRefreshTokenError } from '../service/getApiClient';
4
+ import getApiClient, {
5
+ setCurrentServer,
6
+ setApiToken,
7
+ setRefreshToken,
8
+ setApiClientId,
9
+ setRefreshExpiration,
10
+ setOnRefreshToken,
11
+ setFetchOptions,
12
+ setRefreshTenantId,
13
+ setRefreshDomainName,
14
+ setOnRefreshTokenError,
15
+ getFetchOptions,
16
+ } from '../service/getApiClient';
5
17
  import IssueReporter from '../service/IssueReporter';
6
18
  import Wazo from './index';
7
19
  import SipLine from '../domain/SipLine';
@@ -203,18 +215,23 @@ class Auth implements IAuth {
203
215
  if (this.clientId && deleteRefreshToken) {
204
216
  await getApiClient().auth.deleteRefreshToken(this.clientId);
205
217
  }
206
- } catch (e: any) { // Nothing to
218
+ } catch (e: any) {
219
+ // Nothing to
207
220
  }
208
221
 
209
222
  try {
210
- await getApiClient().auth.logOut(this.session?.token || '');
211
- } catch (e: any) { // Nothing to
223
+ if (this.session?.token) {
224
+ await getApiClient().auth.logOut(this.session.token);
225
+ }
226
+ } catch (e: any) {
227
+ // Nothing to
212
228
  }
213
229
 
214
230
  setApiToken(null);
215
231
  setRefreshToken(null);
216
232
  this.session = null;
217
233
  this.authenticated = false;
234
+ setFetchOptions({});
218
235
  }
219
236
 
220
237
  setOnRefreshToken(callback: (...args: Array<any>) => any) {
@@ -313,12 +330,35 @@ class Auth implements IAuth {
313
330
  return `${this.getFirstName()} ${this.getLastName()}`;
314
331
  }
315
332
 
333
+ async setHttpUserUuidHeader(uuid: string | null | undefined) {
334
+ if (!uuid) {
335
+ return;
336
+ }
337
+ const headers = {
338
+ ...(getFetchOptions()?.headers || {}),
339
+ 'X-User-UUID': uuid,
340
+ };
341
+
342
+ try {
343
+ await getApiClient().client.head('auth/0.1/status', null, headers);
344
+
345
+ // If the previous request went well, it means that the header is accepted
346
+ setFetchOptions({
347
+ ...getFetchOptions(),
348
+ headers,
349
+ });
350
+ } catch (_) {
351
+ // Nothing to do
352
+ }
353
+ }
354
+
316
355
  async _onAuthenticated(rawSession: Session): Promise<Session | null> {
317
356
  if (this.authenticated && this.session) {
318
357
  return this.session;
319
358
  }
320
359
 
321
360
  const session = rawSession;
361
+ await this.setHttpUserUuidHeader(session.uuid);
322
362
 
323
363
  if (!session) {
324
364
  return null;
@@ -66,6 +66,7 @@ class Websocket extends Emitter implements IWebsocket {
66
66
  token: session.token,
67
67
  events: ['*'],
68
68
  version: 2,
69
+ session,
69
70
  }, {
70
71
  rejectUnauthorized: false,
71
72
  binaryType: 'arraybuffer',
@@ -19,7 +19,7 @@ type ConstructorParams = {
19
19
  token?: string | null;
20
20
  fetchOptions: Record<string, any> | null | undefined;
21
21
  };
22
- const methods = ['head', 'get', 'post', 'put', 'delete'];
22
+ const methods = ['head', 'get', 'post', 'put', 'delete', 'options'];
23
23
  const logger = IssueReporter ? IssueReporter.loggerFor('api') : console;
24
24
  // Use a function here to be able to mock it in tests
25
25
  export const realFetch = () => {
@@ -76,6 +76,8 @@ export default class ApiRequester {
76
76
 
77
77
  delete: (...args: Array<any>) => any;
78
78
 
79
+ options: (...args: Array<any>) => any;
80
+
79
81
  static successResponseParser(response: Record<string, any>): boolean {
80
82
  return response.status === 204 || response.status === 201 || response.status === 200;
81
83
  }
@@ -163,7 +165,8 @@ export default class ApiRequester {
163
165
  const options = {
164
166
  method,
165
167
  body: newBody,
166
- headers: { ...this.getHeaders(headers),
168
+ headers: {
169
+ ...this.getHeaders(headers),
167
170
  ...extraHeaders,
168
171
  },
169
172
  agent: this.agent,
@@ -1,5 +1,7 @@
1
1
  /* eslint-disable no-underscore-dangle */
2
2
  import ReconnectingWebSocket from 'reconnecting-websocket';
3
+
4
+ import Session from './domain/Session';
3
5
  import Emitter from './utils/Emitter';
4
6
  import type { WebSocketMessage } from './types/WebSocketMessage';
5
7
  import IssueReporter from './service/IssueReporter';
@@ -18,6 +20,7 @@ type Arguments = {
18
20
  token: string;
19
21
  events?: Array<string>;
20
22
  version?: number;
23
+ session?: Session,
21
24
  heartbeat?: {
22
25
  delay: number;
23
26
  timeout: number;
@@ -99,6 +102,8 @@ const messageLogger = IssueReporter.loggerFor('wazo-ws-message');
99
102
  class WebSocketClient extends Emitter {
100
103
  initialized: boolean;
101
104
 
105
+ session?: Session;
106
+
102
107
  host: string | null | undefined;
103
108
 
104
109
  version: number | undefined;
@@ -130,6 +135,7 @@ class WebSocketClient extends Emitter {
130
135
  * @param events
131
136
  * @param version
132
137
  * @param heartbeat
138
+ * @param session
133
139
  * @param options @see https://github.com/pladaria/reconnecting-websocket#available-options
134
140
  */
135
141
  constructor({
@@ -138,12 +144,14 @@ class WebSocketClient extends Emitter {
138
144
  version,
139
145
  events,
140
146
  heartbeat,
147
+ session,
141
148
  }: Arguments, options: Record<string, any> = {
142
149
  host,
143
150
  token,
144
151
  version: 1,
145
152
  events: [],
146
153
  heartbeat: {},
154
+ session: null,
147
155
  }) {
148
156
  super();
149
157
  this.initialized = false;
@@ -153,6 +161,7 @@ class WebSocketClient extends Emitter {
153
161
  this.events = events;
154
162
  this.options = options;
155
163
  this.version = version;
164
+ this.session = session;
156
165
  this._boundOnHeartbeat = this._onHeartbeat.bind(this);
157
166
  const {
158
167
  delay,
@@ -424,7 +433,11 @@ class WebSocketClient extends Emitter {
424
433
  this.close();
425
434
  }
426
435
 
427
- const url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
436
+ let url = `wss://${this.host || ''}/api/websocketd/?token=${this.token || ''}&version=${this.version}`;
437
+ if (this.session) {
438
+ url += `&userUuid=${this.session.uuid}`;
439
+ }
440
+
428
441
  logger.info('Wazo WS url computed to reconnect', {
429
442
  url,
430
443
  });