@webex/internal-plugin-board 3.0.0-beta.4 → 3.0.0-beta.400
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/README.md +1 -3
- package/dist/board.js +44 -110
- package/dist/board.js.map +1 -1
- package/dist/config.js +0 -8
- package/dist/config.js.map +1 -1
- package/dist/index.js +7 -28
- package/dist/index.js.map +1 -1
- package/dist/realtime-channel-collection.js +2 -8
- package/dist/realtime-channel-collection.js.map +1 -1
- package/dist/realtime-channel.js +1 -5
- package/dist/realtime-channel.js.map +1 -1
- package/dist/realtime.js +38 -82
- package/dist/realtime.js.map +1 -1
- package/package.json +14 -14
- package/src/board.js +273 -207
- package/src/config.js +2 -2
- package/src/index.js +19 -21
- package/src/realtime-channel-collection.js +2 -2
- package/src/realtime-channel.js +8 -9
- package/src/realtime.js +109 -93
- package/test/integration/spec/board.js +350 -222
- package/test/integration/spec/realtime.js +84 -57
- package/test/integration/spec/sharing-mercury.js +154 -73
- package/test/unit/spec/board.js +327 -216
- package/test/unit/spec/encryption.js +152 -120
- package/test/unit/spec/realtime.js +131 -89
package/README.md
CHANGED
|
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-board
|
|
|
21
21
|
## Usage
|
|
22
22
|
|
|
23
23
|
```js
|
|
24
|
-
|
|
25
24
|
import '@webex/internal-plugin-board';
|
|
26
25
|
|
|
27
26
|
import WebexCore from '@webex/webex-core';
|
|
28
27
|
|
|
29
28
|
const webex = new WebexCore();
|
|
30
|
-
webex.internal.board.WHATEVER
|
|
31
|
-
|
|
29
|
+
webex.internal.board.WHATEVER;
|
|
32
30
|
```
|
|
33
31
|
|
|
34
32
|
## Maintainers
|
package/dist/board.js
CHANGED
|
@@ -1,50 +1,36 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
|
|
4
|
+
var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
|
|
5
|
+
var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
|
|
6
|
+
var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
|
|
7
|
+
var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
|
|
3
8
|
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
4
|
-
|
|
5
9
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
6
|
-
|
|
7
10
|
_Object$defineProperty(exports, "__esModule", {
|
|
8
11
|
value: true
|
|
9
12
|
});
|
|
10
|
-
|
|
11
13
|
exports.default = void 0;
|
|
12
|
-
|
|
13
|
-
var _assign2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
14
|
-
|
|
15
14
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
16
|
-
|
|
17
15
|
var _deleteProperty = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/reflect/delete-property"));
|
|
18
|
-
|
|
19
16
|
var _stringify = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/json/stringify"));
|
|
20
|
-
|
|
21
17
|
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/slicedToArray"));
|
|
22
|
-
|
|
18
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
23
19
|
var _pick2 = _interopRequireDefault(require("lodash/pick"));
|
|
24
|
-
|
|
25
20
|
var _chunk2 = _interopRequireDefault(require("lodash/chunk"));
|
|
26
|
-
|
|
27
21
|
var _defaults2 = _interopRequireDefault(require("lodash/defaults"));
|
|
28
|
-
|
|
29
|
-
var _assign3 = _interopRequireDefault(require("lodash/assign"));
|
|
30
|
-
|
|
22
|
+
var _assign2 = _interopRequireDefault(require("lodash/assign"));
|
|
31
23
|
var _querystring = _interopRequireDefault(require("querystring"));
|
|
32
|
-
|
|
33
24
|
var _webexCore = require("@webex/webex-core");
|
|
34
|
-
|
|
35
25
|
var _es6PromiseSeries = _interopRequireDefault(require("es6-promise-series"));
|
|
36
|
-
|
|
37
26
|
var _realtime = _interopRequireDefault(require("./realtime"));
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
* Copyright (c) 2015-2022 Cisco Systems, Inc. See LICENSE file.
|
|
41
|
-
*/
|
|
27
|
+
function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
28
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(target, _Object$getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { _Object$defineProperty(target, key, _Object$getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
42
29
|
var Board = _webexCore.WebexPlugin.extend({
|
|
43
30
|
namespace: 'Board',
|
|
44
31
|
children: {
|
|
45
32
|
realtime: _realtime.default
|
|
46
33
|
},
|
|
47
|
-
|
|
48
34
|
/**
|
|
49
35
|
* Adds Content to a Channel
|
|
50
36
|
* If contents length is greater than config.board.numberContentsPerPageForAdd, this method
|
|
@@ -57,16 +43,15 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
57
43
|
*/
|
|
58
44
|
addContent: function addContent(channel, contents) {
|
|
59
45
|
var _this = this;
|
|
60
|
-
|
|
61
46
|
var chunks = [];
|
|
62
|
-
chunks = (0, _chunk2.default)(contents, this.config.numberContentsPerPageForAdd);
|
|
63
|
-
// chunk or else we'll have race conditions among patches
|
|
47
|
+
chunks = (0, _chunk2.default)(contents, this.config.numberContentsPerPageForAdd);
|
|
64
48
|
|
|
49
|
+
// we want the first promise to resolve before continuing with the next
|
|
50
|
+
// chunk or else we'll have race conditions among patches
|
|
65
51
|
return (0, _es6PromiseSeries.default)(chunks.map(function (part) {
|
|
66
52
|
return _this._addContentChunk.bind(_this, channel, part);
|
|
67
53
|
}));
|
|
68
54
|
},
|
|
69
|
-
|
|
70
55
|
/**
|
|
71
56
|
* Adds Image to a Channel
|
|
72
57
|
* Uploads image to webex files and adds SCR + downloadUrl to the persistence
|
|
@@ -79,7 +64,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
79
64
|
*/
|
|
80
65
|
addImage: function addImage(channel, image, metadata) {
|
|
81
66
|
var _this2 = this;
|
|
82
|
-
|
|
83
67
|
return this.webex.internal.board._uploadImage(channel, image).then(function (scr) {
|
|
84
68
|
return _this2.webex.internal.board.addContent(channel, [{
|
|
85
69
|
type: 'FILE',
|
|
@@ -93,7 +77,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
93
77
|
}]);
|
|
94
78
|
});
|
|
95
79
|
},
|
|
96
|
-
|
|
97
80
|
/**
|
|
98
81
|
* Set a snapshot image for a board
|
|
99
82
|
*
|
|
@@ -103,7 +86,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
103
86
|
*/
|
|
104
87
|
setSnapshotImage: function setSnapshotImage(channel, image) {
|
|
105
88
|
var _this3 = this;
|
|
106
|
-
|
|
107
89
|
var imageScr;
|
|
108
90
|
return this.webex.internal.board._uploadImage(channel, image, {
|
|
109
91
|
hiddenSpace: true
|
|
@@ -134,7 +116,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
134
116
|
return res.body;
|
|
135
117
|
});
|
|
136
118
|
},
|
|
137
|
-
|
|
138
119
|
/**
|
|
139
120
|
* Creates a Channel
|
|
140
121
|
* @memberof Board.BoardService
|
|
@@ -152,18 +133,31 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
152
133
|
return res.body;
|
|
153
134
|
});
|
|
154
135
|
},
|
|
155
|
-
|
|
156
|
-
|
|
136
|
+
/**
|
|
137
|
+
* Prepare a create request body to the board services based on the provided
|
|
138
|
+
* conversation and channel.
|
|
139
|
+
*
|
|
140
|
+
* @param {Conversation} conversation - Conversation object.
|
|
141
|
+
* @param {Channel} channel - Channel Object
|
|
142
|
+
* @returns {Object} - Create channel request body.
|
|
143
|
+
*/
|
|
144
|
+
_prepareChannel: function _prepareChannel() {
|
|
145
|
+
var conversation = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
146
|
+
var channel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
147
|
+
var results = _objectSpread({
|
|
157
148
|
aclUrlLink: conversation.aclUrl,
|
|
158
149
|
kmsMessage: {
|
|
159
150
|
method: 'create',
|
|
160
151
|
uri: '/resources',
|
|
161
|
-
userIds: [
|
|
152
|
+
userIds: [],
|
|
162
153
|
keyUris: []
|
|
163
154
|
}
|
|
164
155
|
}, channel);
|
|
156
|
+
if (conversation.kmsResourceObjectUrl) {
|
|
157
|
+
results.kmsMessage.userIds.push(conversation.kmsResourceObjectUrl);
|
|
158
|
+
}
|
|
159
|
+
return results;
|
|
165
160
|
},
|
|
166
|
-
|
|
167
161
|
/**
|
|
168
162
|
* Deletes a Channel from a Conversation
|
|
169
163
|
* @memberof Board.BoardService
|
|
@@ -175,7 +169,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
175
169
|
*/
|
|
176
170
|
deleteChannel: function deleteChannel(conversation, channel) {
|
|
177
171
|
var _this4 = this;
|
|
178
|
-
|
|
179
172
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
180
173
|
// remove the ACL link between conversation and board
|
|
181
174
|
// remove conversation auth from board KRO in kms message
|
|
@@ -190,13 +183,10 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
190
183
|
},
|
|
191
184
|
aclLinkOperation: 'DELETE'
|
|
192
185
|
};
|
|
193
|
-
|
|
194
186
|
var promise = _promise.default.resolve();
|
|
195
|
-
|
|
196
187
|
if (options.preventDeleteActiveChannel) {
|
|
197
188
|
promise = this.lockChannelForDeletion(channel);
|
|
198
189
|
}
|
|
199
|
-
|
|
200
190
|
return promise.then(function () {
|
|
201
191
|
return _this4.webex.request({
|
|
202
192
|
method: 'PUT',
|
|
@@ -207,7 +197,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
207
197
|
return res.body;
|
|
208
198
|
});
|
|
209
199
|
},
|
|
210
|
-
|
|
211
200
|
/**
|
|
212
201
|
* Locks and marks a channel for deletion
|
|
213
202
|
* If a channel is being used, it will return 409 - Conflict
|
|
@@ -226,7 +215,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
226
215
|
return res.body;
|
|
227
216
|
});
|
|
228
217
|
},
|
|
229
|
-
|
|
230
218
|
/**
|
|
231
219
|
* Keeps a channel as 'active' to prevent other people from deleting it
|
|
232
220
|
* @param {Board~Channel} channel
|
|
@@ -238,7 +226,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
238
226
|
uri: "".concat(channel.channelUrl, "/keepAlive")
|
|
239
227
|
});
|
|
240
228
|
},
|
|
241
|
-
|
|
242
229
|
/**
|
|
243
230
|
* Decrypts a collection of content objects
|
|
244
231
|
*
|
|
@@ -248,16 +235,13 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
248
235
|
*/
|
|
249
236
|
decryptContents: function decryptContents(contents) {
|
|
250
237
|
var _this5 = this;
|
|
251
|
-
|
|
252
238
|
return _promise.default.all(contents.items.map(function (content) {
|
|
253
239
|
var decryptPromise;
|
|
254
|
-
|
|
255
240
|
if (content.type === 'FILE') {
|
|
256
241
|
decryptPromise = _this5.decryptSingleFileContent(content.encryptionKeyUrl, content);
|
|
257
242
|
} else {
|
|
258
243
|
decryptPromise = _this5.decryptSingleContent(content.encryptionKeyUrl, content.payload);
|
|
259
244
|
}
|
|
260
|
-
|
|
261
245
|
return decryptPromise.then(function (res) {
|
|
262
246
|
(0, _deleteProperty.default)(content, 'payload');
|
|
263
247
|
(0, _deleteProperty.default)(content, 'encryptionKeyUrl');
|
|
@@ -265,7 +249,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
265
249
|
});
|
|
266
250
|
}));
|
|
267
251
|
},
|
|
268
|
-
|
|
269
252
|
/**
|
|
270
253
|
* Decryts a single STRING content object
|
|
271
254
|
* @memberof Board.BoardService
|
|
@@ -278,7 +261,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
278
261
|
return JSON.parse(res);
|
|
279
262
|
});
|
|
280
263
|
},
|
|
281
|
-
|
|
282
264
|
/**
|
|
283
265
|
* Decryts a single FILE content object
|
|
284
266
|
* @memberof Board.BoardService
|
|
@@ -288,36 +270,28 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
288
270
|
*/
|
|
289
271
|
decryptSingleFileContent: function decryptSingleFileContent(encryptionKeyUrl, encryptedContent) {
|
|
290
272
|
var _this6 = this;
|
|
291
|
-
|
|
292
273
|
var metadata;
|
|
293
|
-
|
|
294
274
|
if (encryptedContent.payload) {
|
|
295
275
|
metadata = encryptedContent.payload;
|
|
296
276
|
}
|
|
297
|
-
|
|
298
277
|
return this.webex.internal.encryption.decryptScr(encryptionKeyUrl, encryptedContent.file.scr).then(function (scr) {
|
|
299
278
|
encryptedContent.file.scr = scr;
|
|
300
|
-
|
|
301
279
|
if (metadata) {
|
|
302
280
|
return _this6.webex.internal.encryption.decryptText(encryptionKeyUrl, metadata);
|
|
303
281
|
}
|
|
304
|
-
|
|
305
282
|
return '';
|
|
306
283
|
}).then(function (decryptedMetadata) {
|
|
307
284
|
try {
|
|
308
285
|
encryptedContent.metadata = JSON.parse(decryptedMetadata);
|
|
309
|
-
|
|
310
286
|
if (encryptedContent.metadata.displayName) {
|
|
311
287
|
encryptedContent.displayName = encryptedContent.metadata.displayName;
|
|
312
288
|
}
|
|
313
289
|
} catch (error) {
|
|
314
290
|
encryptedContent.metadata = {};
|
|
315
291
|
}
|
|
316
|
-
|
|
317
292
|
return encryptedContent;
|
|
318
293
|
});
|
|
319
294
|
},
|
|
320
|
-
|
|
321
295
|
/**
|
|
322
296
|
* Deletes all Content from a Channel
|
|
323
297
|
* @memberof Board.BoardService
|
|
@@ -332,9 +306,10 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
332
306
|
return res.body;
|
|
333
307
|
});
|
|
334
308
|
},
|
|
335
|
-
|
|
336
309
|
/**
|
|
337
310
|
* Deletes Contents from a Channel except the ones listed in contentsToKeep
|
|
311
|
+
*
|
|
312
|
+
* THIS API HAS CHANGED!!! SEE SPARK-412694. NEEDS UPDATING.
|
|
338
313
|
* @memberof Board.BoardService
|
|
339
314
|
* @param {Board~Channel} channel
|
|
340
315
|
* @param {Array<Board~Content>} contentsToKeep Array of board objects (curves, text, and images) with valid contentId (received from server)
|
|
@@ -355,7 +330,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
355
330
|
return res.body;
|
|
356
331
|
});
|
|
357
332
|
},
|
|
358
|
-
|
|
359
333
|
/**
|
|
360
334
|
* Encrypts a collection of content
|
|
361
335
|
* @memberof Board.BoardService
|
|
@@ -365,20 +339,19 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
365
339
|
*/
|
|
366
340
|
encryptContents: function encryptContents(encryptionKeyUrl, contents) {
|
|
367
341
|
var _this7 = this;
|
|
368
|
-
|
|
369
342
|
return _promise.default.all(contents.map(function (content) {
|
|
370
343
|
var encryptionPromise;
|
|
371
|
-
var contentType = 'STRING';
|
|
344
|
+
var contentType = 'STRING';
|
|
372
345
|
|
|
346
|
+
// the existence of an scr will determine if the content is a FILE.
|
|
373
347
|
if (content.file) {
|
|
374
348
|
contentType = 'FILE';
|
|
375
349
|
encryptionPromise = _this7.encryptSingleFileContent(encryptionKeyUrl, content);
|
|
376
350
|
} else {
|
|
377
351
|
encryptionPromise = _this7.encryptSingleContent(encryptionKeyUrl, content);
|
|
378
352
|
}
|
|
379
|
-
|
|
380
353
|
return encryptionPromise.then(function (res) {
|
|
381
|
-
return (0,
|
|
354
|
+
return (0, _assign2.default)({
|
|
382
355
|
device: _this7.webex.internal.device.deviceType,
|
|
383
356
|
type: contentType,
|
|
384
357
|
encryptionKeyUrl: encryptionKeyUrl
|
|
@@ -386,7 +359,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
386
359
|
});
|
|
387
360
|
}));
|
|
388
361
|
},
|
|
389
|
-
|
|
390
362
|
/**
|
|
391
363
|
* Encrypts a single STRING content object
|
|
392
364
|
* @memberof Board.BoardService
|
|
@@ -402,7 +374,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
402
374
|
};
|
|
403
375
|
});
|
|
404
376
|
},
|
|
405
|
-
|
|
406
377
|
/**
|
|
407
378
|
* Encrypts a single FILE content object
|
|
408
379
|
* @memberof Board.BoardService
|
|
@@ -412,22 +383,18 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
412
383
|
*/
|
|
413
384
|
encryptSingleFileContent: function encryptSingleFileContent(encryptionKeyUrl, content) {
|
|
414
385
|
var _this8 = this;
|
|
415
|
-
|
|
416
386
|
return this.webex.internal.encryption.encryptScr(encryptionKeyUrl, content.file.scr).then(function (encryptedScr) {
|
|
417
387
|
content.file.scr = encryptedScr;
|
|
418
|
-
|
|
419
388
|
if (content.displayName) {
|
|
420
|
-
content.metadata = (0,
|
|
389
|
+
content.metadata = (0, _assign2.default)(content.metadata, {
|
|
421
390
|
displayName: content.displayName
|
|
422
391
|
});
|
|
423
392
|
}
|
|
424
|
-
|
|
425
393
|
if (content.metadata) {
|
|
426
394
|
return _this8.webex.internal.encryption.encryptText(encryptionKeyUrl, (0, _stringify.default)(content.metadata)).then(function (encryptedMetadata) {
|
|
427
395
|
content.metadata = encryptedMetadata;
|
|
428
396
|
});
|
|
429
397
|
}
|
|
430
|
-
|
|
431
398
|
return content;
|
|
432
399
|
}).then(function () {
|
|
433
400
|
return {
|
|
@@ -437,7 +404,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
437
404
|
};
|
|
438
405
|
});
|
|
439
406
|
},
|
|
440
|
-
|
|
441
407
|
/**
|
|
442
408
|
* Retrieves contents from a specified channel
|
|
443
409
|
* @memberof Board.BoardService
|
|
@@ -448,7 +414,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
448
414
|
*/
|
|
449
415
|
getContents: function getContents(channel, options) {
|
|
450
416
|
var _this9 = this;
|
|
451
|
-
|
|
452
417
|
options = options || {};
|
|
453
418
|
var params = {
|
|
454
419
|
uri: "".concat(channel.channelUrl, "/contents"),
|
|
@@ -456,12 +421,11 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
456
421
|
contentsLimit: this.config.numberContentsPerPageForGet
|
|
457
422
|
}
|
|
458
423
|
};
|
|
459
|
-
(0,
|
|
424
|
+
(0, _assign2.default)(params.qs, (0, _pick2.default)(options, 'contentsLimit'));
|
|
460
425
|
return this.request(params).then(function (res) {
|
|
461
426
|
return new _webexCore.Page(res, _this9.webex);
|
|
462
427
|
});
|
|
463
428
|
},
|
|
464
|
-
|
|
465
429
|
/**
|
|
466
430
|
* Gets a Channel
|
|
467
431
|
* @memberof Board.BoardService
|
|
@@ -476,7 +440,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
476
440
|
return res.body;
|
|
477
441
|
});
|
|
478
442
|
},
|
|
479
|
-
|
|
480
443
|
/**
|
|
481
444
|
* Gets Channels
|
|
482
445
|
* @memberof Board.BoardService
|
|
@@ -488,13 +451,10 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
488
451
|
*/
|
|
489
452
|
getChannels: function getChannels(conversation, options) {
|
|
490
453
|
var _this10 = this;
|
|
491
|
-
|
|
492
454
|
options = options || {};
|
|
493
|
-
|
|
494
455
|
if (!conversation) {
|
|
495
456
|
return _promise.default.reject(new Error('`conversation` is required'));
|
|
496
457
|
}
|
|
497
|
-
|
|
498
458
|
var params = {
|
|
499
459
|
api: 'board',
|
|
500
460
|
resource: '/channels',
|
|
@@ -502,12 +462,11 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
502
462
|
aclUrlLink: conversation.aclUrl
|
|
503
463
|
}
|
|
504
464
|
};
|
|
505
|
-
(0,
|
|
465
|
+
(0, _assign2.default)(params.qs, (0, _pick2.default)(options, 'channelsLimit', 'type'));
|
|
506
466
|
return this.request(params).then(function (res) {
|
|
507
467
|
return new _webexCore.Page(res, _this10.webex);
|
|
508
468
|
});
|
|
509
469
|
},
|
|
510
|
-
|
|
511
470
|
/**
|
|
512
471
|
* Pings persistence
|
|
513
472
|
* @memberof Board.BoardService
|
|
@@ -524,20 +483,17 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
524
483
|
},
|
|
525
484
|
processActivityEvent: function processActivityEvent(message) {
|
|
526
485
|
var decryptionPromise;
|
|
527
|
-
|
|
528
486
|
if (message.contentType === 'FILE') {
|
|
529
487
|
decryptionPromise = this.decryptSingleFileContent(message.envelope.encryptionKeyUrl, message.payload);
|
|
530
488
|
} else {
|
|
531
489
|
decryptionPromise = this.decryptSingleContent(message.envelope.encryptionKeyUrl, message.payload);
|
|
532
490
|
}
|
|
533
|
-
|
|
534
491
|
return decryptionPromise.then(function (decryptedData) {
|
|
535
492
|
// call the event handlers
|
|
536
493
|
message.payload = decryptedData;
|
|
537
494
|
return message;
|
|
538
495
|
});
|
|
539
496
|
},
|
|
540
|
-
|
|
541
497
|
/**
|
|
542
498
|
* Registers with Mercury
|
|
543
499
|
* @memberof Board.BoardService
|
|
@@ -554,7 +510,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
554
510
|
return res.body;
|
|
555
511
|
});
|
|
556
512
|
},
|
|
557
|
-
|
|
558
513
|
/**
|
|
559
514
|
* Registers with Mercury for sharing web socket
|
|
560
515
|
* @memberof Board.BoardService
|
|
@@ -563,16 +518,13 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
563
518
|
*/
|
|
564
519
|
registerToShareMercury: function registerToShareMercury(channel) {
|
|
565
520
|
var _this11 = this;
|
|
566
|
-
|
|
567
521
|
return this.webex.internal.feature.getFeature('developer', 'web-shared-mercury').then(function (isSharingMercuryFeatureEnabled) {
|
|
568
522
|
if (!_this11.webex.internal.mercury.localClusterServiceUrls) {
|
|
569
523
|
return _promise.default.reject(new Error('`localClusterServiceUrls` is not defined, make sure mercury is connected'));
|
|
570
524
|
}
|
|
571
|
-
|
|
572
525
|
if (!isSharingMercuryFeatureEnabled) {
|
|
573
526
|
return _promise.default.reject(new Error('`web-shared-mercury` is not enabled'));
|
|
574
527
|
}
|
|
575
|
-
|
|
576
528
|
var webSocketUrl = _this11.webex.internal.device.webSocketUrl;
|
|
577
529
|
var mercuryConnectionServiceClusterUrl = _this11.webex.internal.mercury.localClusterServiceUrls.mercuryConnectionServiceClusterUrl;
|
|
578
530
|
var data = {
|
|
@@ -589,7 +541,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
589
541
|
return res.body;
|
|
590
542
|
});
|
|
591
543
|
},
|
|
592
|
-
|
|
593
544
|
/**
|
|
594
545
|
* Remove board binding from existing mercury connection
|
|
595
546
|
* @memberof Board.BoardService
|
|
@@ -614,7 +565,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
614
565
|
},
|
|
615
566
|
_addContentChunk: function _addContentChunk(channel, contentChunk) {
|
|
616
567
|
var _this12 = this;
|
|
617
|
-
|
|
618
568
|
return this.webex.internal.board.encryptContents(channel.defaultEncryptionKeyUrl, contentChunk).then(function (res) {
|
|
619
569
|
return _this12.webex.request({
|
|
620
570
|
method: 'POST',
|
|
@@ -625,7 +575,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
625
575
|
return res.body;
|
|
626
576
|
});
|
|
627
577
|
},
|
|
628
|
-
|
|
629
578
|
/**
|
|
630
579
|
* Encrypts and uploads image to WebexFiles
|
|
631
580
|
* @memberof Board.BoardService
|
|
@@ -638,29 +587,25 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
638
587
|
*/
|
|
639
588
|
_uploadImage: function _uploadImage(channel, file, options) {
|
|
640
589
|
var _this13 = this;
|
|
641
|
-
|
|
642
590
|
options = options || {};
|
|
643
591
|
return this.webex.internal.encryption.encryptBinary(file).then(function (_ref) {
|
|
644
592
|
var scr = _ref.scr,
|
|
645
|
-
|
|
593
|
+
cdata = _ref.cdata;
|
|
646
594
|
return _promise.default.all([scr, _this13._uploadImageToWebexFiles(channel, cdata, options.hiddenSpace)]);
|
|
647
595
|
}).then(function (_ref2) {
|
|
648
596
|
var _ref3 = (0, _slicedToArray2.default)(_ref2, 2),
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
return (0, _assign3.default)(scr, {
|
|
597
|
+
scr = _ref3[0],
|
|
598
|
+
res = _ref3[1];
|
|
599
|
+
return (0, _assign2.default)(scr, {
|
|
653
600
|
loc: res.downloadUrl
|
|
654
601
|
});
|
|
655
602
|
});
|
|
656
603
|
},
|
|
657
604
|
_getSpaceUrl: function _getSpaceUrl(channel, hiddenSpace) {
|
|
658
605
|
var requestUri = "".concat(channel.channelUrl, "/spaces/open");
|
|
659
|
-
|
|
660
606
|
if (hiddenSpace) {
|
|
661
607
|
requestUri = "".concat(channel.channelUrl, "/spaces/hidden");
|
|
662
608
|
}
|
|
663
|
-
|
|
664
609
|
return this.webex.request({
|
|
665
610
|
method: 'PUT',
|
|
666
611
|
uri: requestUri
|
|
@@ -670,7 +615,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
670
615
|
},
|
|
671
616
|
_uploadImageToWebexFiles: function _uploadImageToWebexFiles(channel, file, hiddenSpace) {
|
|
672
617
|
var _this14 = this;
|
|
673
|
-
|
|
674
618
|
var fileSize = file.length || file.size || file.byteLength;
|
|
675
619
|
return this._getSpaceUrl(channel, hiddenSpace).then(function (spaceUrl) {
|
|
676
620
|
return _this14.webex.upload({
|
|
@@ -700,7 +644,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
700
644
|
});
|
|
701
645
|
});
|
|
702
646
|
},
|
|
703
|
-
|
|
704
647
|
/** Authorize transcoder (for sharing whiteboard to mobile)
|
|
705
648
|
*
|
|
706
649
|
* @param {Board~Channel} board
|
|
@@ -709,11 +652,9 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
709
652
|
*/
|
|
710
653
|
authorizeMediaInjector: function authorizeMediaInjector(board) {
|
|
711
654
|
var _this15 = this;
|
|
712
|
-
|
|
713
655
|
if (!board) {
|
|
714
656
|
_promise.default.reject(new Error('#authorizeMediaInjector --> cannot authorize transcoder without board'));
|
|
715
657
|
}
|
|
716
|
-
|
|
717
658
|
return this.webex.internal.encryption.kms.prepareRequest({
|
|
718
659
|
method: 'create',
|
|
719
660
|
uri: '/authorizations',
|
|
@@ -733,7 +674,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
733
674
|
if ((decryptedKmsMessage === null || decryptedKmsMessage === void 0 ? void 0 : decryptedKmsMessage.authorizations.length) > 0) {
|
|
734
675
|
return decryptedKmsMessage.authorizations[0].bearer;
|
|
735
676
|
}
|
|
736
|
-
|
|
737
677
|
return undefined;
|
|
738
678
|
}).catch(function (err) {
|
|
739
679
|
return (
|
|
@@ -744,7 +684,6 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
744
684
|
);
|
|
745
685
|
});
|
|
746
686
|
},
|
|
747
|
-
|
|
748
687
|
/** Unauthorize transcoder (for stopping whiteboard share to mobile)
|
|
749
688
|
*
|
|
750
689
|
* @param {Board~Channel} board
|
|
@@ -753,11 +692,9 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
753
692
|
*/
|
|
754
693
|
unauthorizeMediaInjector: function unauthorizeMediaInjector(board) {
|
|
755
694
|
var _this16 = this;
|
|
756
|
-
|
|
757
695
|
if (!board) {
|
|
758
696
|
_promise.default.reject(new Error('#unauthorizeMediaInjector --> cannot unauthorize transcoder without board'));
|
|
759
697
|
}
|
|
760
|
-
|
|
761
698
|
return this.webex.internal.encryption.kms.listAuthorizations({
|
|
762
699
|
kroUri: board.kmsResourceUrl
|
|
763
700
|
}).then(function (authorizations) {
|
|
@@ -774,25 +711,22 @@ var Board = _webexCore.WebexPlugin.extend({
|
|
|
774
711
|
}).catch(function (err) {
|
|
775
712
|
return (
|
|
776
713
|
/* We don't want this to error out, otherwise the
|
|
777
|
-
|
|
778
|
-
|
|
714
|
+
* Promise.all will not process the rest of the request
|
|
715
|
+
*/
|
|
779
716
|
_promise.default.resolve(err)
|
|
780
717
|
);
|
|
781
718
|
});
|
|
782
719
|
});
|
|
783
|
-
|
|
784
720
|
if (promises.length > 0) {
|
|
785
721
|
return _promise.default.all(promises).then(function (responses) {
|
|
786
722
|
return responses;
|
|
787
723
|
});
|
|
788
724
|
}
|
|
789
|
-
|
|
790
725
|
return _promise.default.resolve([]);
|
|
791
726
|
});
|
|
792
727
|
},
|
|
793
|
-
version: "3.0.0-beta.
|
|
728
|
+
version: "3.0.0-beta.400"
|
|
794
729
|
});
|
|
795
|
-
|
|
796
730
|
var _default = Board;
|
|
797
731
|
exports.default = _default;
|
|
798
732
|
//# sourceMappingURL=board.js.map
|