@webex/plugin-meetings 3.0.0-bnr.1 → 3.0.0-bnr.2
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/dist/breakouts/breakout.js +50 -9
- package/dist/breakouts/breakout.js.map +1 -1
- package/dist/breakouts/index.js +164 -45
- package/dist/breakouts/index.js.map +1 -1
- package/dist/breakouts/utils.js +11 -7
- package/dist/breakouts/utils.js.map +1 -1
- package/dist/constants.js +15 -5
- package/dist/constants.js.map +1 -1
- package/dist/controls-options-manager/index.js +43 -22
- package/dist/controls-options-manager/index.js.map +1 -1
- package/dist/index.js +63 -1
- package/dist/index.js.map +1 -1
- package/dist/locus-info/controlsUtils.js +15 -0
- package/dist/locus-info/controlsUtils.js.map +1 -1
- package/dist/locus-info/index.js +17 -6
- package/dist/locus-info/index.js.map +1 -1
- package/dist/locus-info/selfUtils.js +20 -0
- package/dist/locus-info/selfUtils.js.map +1 -1
- package/dist/media/index.js.map +1 -1
- package/dist/media/properties.js.map +1 -1
- package/dist/meeting/in-meeting-actions.js +6 -0
- package/dist/meeting/in-meeting-actions.js.map +1 -1
- package/dist/meeting/index.js +167 -129
- package/dist/meeting/index.js.map +1 -1
- package/dist/meeting/muteState.js +169 -26
- package/dist/meeting/muteState.js.map +1 -1
- package/dist/meeting/util.js +3 -0
- package/dist/meeting/util.js.map +1 -1
- package/dist/meetings/collection.js +22 -0
- package/dist/meetings/collection.js.map +1 -1
- package/dist/meetings/index.js +114 -13
- package/dist/meetings/index.js.map +1 -1
- package/dist/meetings/request.js +2 -0
- package/dist/meetings/request.js.map +1 -1
- package/dist/meetings/util.js +36 -1
- package/dist/meetings/util.js.map +1 -1
- package/dist/member/index.js +23 -0
- package/dist/member/index.js.map +1 -1
- package/dist/member/util.js +61 -2
- package/dist/member/util.js.map +1 -1
- package/dist/members/collection.js +10 -0
- package/dist/members/collection.js.map +1 -1
- package/dist/members/index.js +42 -1
- package/dist/members/index.js.map +1 -1
- package/dist/members/request.js +19 -0
- package/dist/members/request.js.map +1 -1
- package/dist/members/util.js +38 -0
- package/dist/members/util.js.map +1 -1
- package/dist/metrics/config.js +3 -1
- package/dist/metrics/config.js.map +1 -1
- package/dist/metrics/index.js +5 -0
- package/dist/metrics/index.js.map +1 -1
- package/dist/multistream/mediaRequestManager.js +48 -6
- package/dist/multistream/mediaRequestManager.js.map +1 -1
- package/dist/multistream/receiveSlot.js +10 -0
- package/dist/multistream/receiveSlot.js.map +1 -1
- package/dist/multistream/remoteMedia.js +3 -1
- package/dist/multistream/remoteMedia.js.map +1 -1
- package/dist/multistream/remoteMediaManager.js +21 -1
- package/dist/multistream/remoteMediaManager.js.map +1 -1
- package/dist/reconnection-manager/index.js +63 -47
- package/dist/reconnection-manager/index.js.map +1 -1
- package/dist/types/breakouts/utils.d.ts +2 -2
- package/dist/types/constants.d.ts +8 -0
- package/dist/types/index.d.ts +6 -5
- package/dist/types/locus-info/index.d.ts +3 -3
- package/dist/types/media/properties.d.ts +1 -1
- package/dist/types/meeting/in-meeting-actions.d.ts +6 -0
- package/dist/types/meeting/index.d.ts +9 -5
- package/dist/types/meeting/muteState.d.ts +58 -5
- package/dist/types/meetings/collection.d.ts +8 -0
- package/dist/types/meetings/index.d.ts +19 -0
- package/dist/types/member/index.d.ts +10 -0
- package/dist/types/member/types.d.ts +21 -0
- package/dist/types/members/collection.d.ts +5 -0
- package/dist/types/members/index.d.ts +18 -0
- package/dist/types/members/request.d.ts +8 -0
- package/dist/types/members/types.d.ts +24 -0
- package/dist/types/metrics/config.d.ts +2 -0
- package/dist/types/multistream/mediaRequestManager.d.ts +17 -0
- package/dist/types/multistream/receiveSlot.d.ts +4 -0
- package/dist/types/multistream/remoteMedia.d.ts +1 -29
- package/dist/types/multistream/remoteMediaGroup.d.ts +0 -9
- package/dist/types/multistream/remoteMediaManager.d.ts +4 -0
- package/dist/types/reconnection-manager/index.d.ts +9 -0
- package/package.json +20 -19
- package/src/breakouts/README.md +12 -1
- package/src/breakouts/breakout.ts +27 -3
- package/src/breakouts/index.ts +160 -73
- package/src/breakouts/utils.ts +11 -6
- package/src/constants.ts +8 -0
- package/src/controls-options-manager/index.ts +47 -25
- package/src/{index.js → index.ts} +15 -0
- package/src/locus-info/controlsUtils.ts +19 -0
- package/src/locus-info/index.ts +20 -5
- package/src/locus-info/selfUtils.ts +27 -0
- package/src/media/index.ts +2 -7
- package/src/media/properties.ts +3 -7
- package/src/meeting/in-meeting-actions.ts +12 -0
- package/src/meeting/index.ts +134 -91
- package/src/meeting/muteState.ts +158 -15
- package/src/meeting/util.ts +4 -1
- package/src/meetings/collection.ts +20 -0
- package/src/meetings/index.ts +155 -25
- package/src/meetings/request.ts +2 -0
- package/src/meetings/util.ts +41 -1
- package/src/member/index.ts +22 -0
- package/src/member/types.ts +24 -0
- package/src/member/util.ts +53 -0
- package/src/members/collection.ts +8 -0
- package/src/members/index.ts +51 -1
- package/src/members/request.ts +20 -0
- package/src/members/types.ts +28 -0
- package/src/members/util.ts +39 -1
- package/src/metrics/config.ts +2 -0
- package/src/metrics/index.ts +5 -0
- package/src/multistream/mediaRequestManager.ts +45 -3
- package/src/multistream/receiveSlot.ts +7 -0
- package/src/multistream/remoteMedia.ts +3 -1
- package/src/multistream/remoteMediaManager.ts +21 -4
- package/src/reconnection-manager/index.ts +37 -22
- package/test/unit/spec/breakouts/breakout.ts +36 -4
- package/test/unit/spec/breakouts/index.ts +320 -33
- package/test/unit/spec/breakouts/utils.js +8 -1
- package/test/unit/spec/controls-options-manager/index.js +24 -0
- package/test/unit/spec/locus-info/controlsUtils.js +21 -0
- package/test/unit/spec/locus-info/index.js +84 -0
- package/test/unit/spec/locus-info/selfUtils.js +37 -0
- package/test/unit/spec/meeting/in-meeting-actions.ts +6 -0
- package/test/unit/spec/meeting/index.js +37 -28
- package/test/unit/spec/meeting/muteState.js +22 -13
- package/test/unit/spec/meeting/utils.js +1 -0
- package/test/unit/spec/meetings/collection.js +14 -0
- package/test/unit/spec/meetings/index.js +183 -6
- package/test/unit/spec/meetings/utils.js +51 -2
- package/test/unit/spec/member/index.js +24 -0
- package/test/unit/spec/member/util.js +336 -33
- package/test/unit/spec/members/index.js +115 -0
- package/test/unit/spec/members/request.js +21 -0
- package/test/unit/spec/members/utils.js +28 -0
- package/test/unit/spec/multistream/mediaRequestManager.ts +55 -8
- package/test/unit/spec/multistream/receiveSlot.ts +8 -0
- package/test/unit/spec/multistream/remoteMedia.ts +2 -0
- package/test/unit/spec/multistream/remoteMediaManager.ts +68 -0
|
@@ -6,10 +6,15 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
6
6
|
value: true
|
|
7
7
|
});
|
|
8
8
|
exports.default = void 0;
|
|
9
|
+
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
10
|
+
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
9
11
|
var _webexCore = require("@webex/webex-core");
|
|
12
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
10
13
|
var _constants = require("../constants");
|
|
11
14
|
var _members = _interopRequireDefault(require("../members"));
|
|
12
15
|
var _request = _interopRequireDefault(require("./request"));
|
|
16
|
+
var _metrics = _interopRequireDefault(require("../metrics"));
|
|
17
|
+
var _config = require("../metrics/config");
|
|
13
18
|
/*!
|
|
14
19
|
* Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.
|
|
15
20
|
*/
|
|
@@ -67,14 +72,50 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
67
72
|
* @returns {Promise}
|
|
68
73
|
*/
|
|
69
74
|
join: function join() {
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
75
|
+
var _this = this;
|
|
76
|
+
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
77
|
+
var breakoutMoveId, meetingId, result;
|
|
78
|
+
return _regenerator.default.wrap(function _callee$(_context) {
|
|
79
|
+
while (1) switch (_context.prev = _context.next) {
|
|
80
|
+
case 0:
|
|
81
|
+
breakoutMoveId = _uuid.default.v4();
|
|
82
|
+
meetingId = _this.collection.parent.meetingId;
|
|
83
|
+
_metrics.default.postEvent({
|
|
84
|
+
event: _config.eventType.MOVE_TO_BREAKOUT,
|
|
85
|
+
meetingId: meetingId,
|
|
86
|
+
data: {
|
|
87
|
+
breakoutMoveId: breakoutMoveId,
|
|
88
|
+
breakoutSessionId: _this.sessionId,
|
|
89
|
+
breakoutGroupId: _this.groupId
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
_context.next = 5;
|
|
93
|
+
return _this.request({
|
|
94
|
+
method: _constants.HTTP_VERBS.POST,
|
|
95
|
+
uri: "".concat(_this.url, "/move"),
|
|
96
|
+
body: {
|
|
97
|
+
groupId: _this.groupId,
|
|
98
|
+
sessionId: _this.sessionId
|
|
99
|
+
}
|
|
100
|
+
});
|
|
101
|
+
case 5:
|
|
102
|
+
result = _context.sent;
|
|
103
|
+
_metrics.default.postEvent({
|
|
104
|
+
event: _config.eventType.JOIN_BREAKOUT_RESPONSE,
|
|
105
|
+
meetingId: meetingId,
|
|
106
|
+
data: {
|
|
107
|
+
breakoutMoveId: breakoutMoveId,
|
|
108
|
+
breakoutSessionId: _this.sessionId,
|
|
109
|
+
breakoutGroupId: _this.groupId
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
return _context.abrupt("return", result);
|
|
113
|
+
case 8:
|
|
114
|
+
case "end":
|
|
115
|
+
return _context.stop();
|
|
116
|
+
}
|
|
117
|
+
}, _callee);
|
|
118
|
+
}))();
|
|
78
119
|
},
|
|
79
120
|
/**
|
|
80
121
|
* Leaves the breakout session to return to the main session
|
|
@@ -130,7 +171,7 @@ var Breakout = _webexCore.WebexPlugin.extend({
|
|
|
130
171
|
sessionId: this.sessionId
|
|
131
172
|
});
|
|
132
173
|
},
|
|
133
|
-
version: "3.0.0-bnr.
|
|
174
|
+
version: "3.0.0-bnr.2"
|
|
134
175
|
});
|
|
135
176
|
var _default = Breakout;
|
|
136
177
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","derived","isMain","deps","fn","initialize","members","Members","parent","webex","join","request","method","HTTP_VERBS","POST","uri","body","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport {HTTP_VERBS, MEETINGS} from '../constants';\nimport LocusInfo from '../locus-info';\nimport Members from '../members';\nimport BreakoutRequest from './request';\n
|
|
1
|
+
{"version":3,"names":["Breakout","WebexPlugin","extend","idAttribute","namespace","MEETINGS","breakoutRequest","BreakoutRequest","props","active","allowed","assigned","assignedCurrent","requested","current","name","sessionId","sessionType","groupId","url","derived","isMain","deps","fn","initialize","members","Members","parent","webex","join","breakoutMoveId","uuid","v4","meetingId","collection","Metrics","postEvent","event","eventType","MOVE_TO_BREAKOUT","data","breakoutSessionId","breakoutGroupId","request","method","HTTP_VERBS","POST","uri","body","result","JOIN_BREAKOUT_RESPONSE","leave","Error","mainSession","breakouts","filter","breakout","askForHelp","parseRoster","locus","locusParticipantsUpdate","broadcast","message","options"],"sources":["breakout.ts"],"sourcesContent":["/*!\n * Copyright (c) 2015-2023 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport uuid from 'uuid';\nimport {HTTP_VERBS, MEETINGS} from '../constants';\nimport LocusInfo from '../locus-info';\nimport Members from '../members';\nimport BreakoutRequest from './request';\nimport Metrics from '../metrics';\nimport {eventType} from '../metrics/config';\n/**\n * @class\n */\nconst Breakout = WebexPlugin.extend({\n idAttribute: 'sessionId',\n\n namespace: MEETINGS,\n\n breakoutRequest: BreakoutRequest,\n props: {\n active: ['boolean', false, false], // this session is active\n allowed: ['boolean', false, false], // allowed to join this session\n assigned: ['boolean', false, false], // assigned to this session, but not necessarily joined yet\n assignedCurrent: ['boolean', false, false], // assigned AND current session\n requested: ['boolean', false, false], // requested by the host to join this session\n current: ['boolean', false, false], // the current joined session\n name: 'string',\n sessionId: 'string',\n sessionType: 'string',\n groupId: 'string',\n url: 'string', // where to send requests to\n },\n\n derived: {\n isMain: {\n deps: ['sessionType'],\n /**\n * If the breakout has no name, assume it is the main session\n * @returns {boolean}\n */\n fn() {\n return this.sessionType === 'MAIN';\n },\n },\n },\n\n initialize() {\n this.members = new Members({}, {parent: this.webex});\n // @ts-ignore\n this.breakoutRequest = new BreakoutRequest({webex: this.webex});\n },\n\n /**\n * Joins the breakout session\n * @returns {Promise}\n */\n async join() {\n const breakoutMoveId = uuid.v4();\n const {meetingId} = this.collection.parent;\n Metrics.postEvent({\n event: eventType.MOVE_TO_BREAKOUT,\n meetingId,\n data: {\n breakoutMoveId,\n breakoutSessionId: this.sessionId,\n breakoutGroupId: this.groupId,\n },\n });\n const result = await this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/move`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n Metrics.postEvent({\n event: eventType.JOIN_BREAKOUT_RESPONSE,\n meetingId,\n data: {\n breakoutMoveId,\n breakoutSessionId: this.sessionId,\n breakoutGroupId: this.groupId,\n },\n });\n\n return result;\n },\n\n /**\n * Leaves the breakout session to return to the main session\n * @returns {Promise}\n * @throws {Error} if an attempt is made to leave the main session or if the main session cannot be found\n */\n leave() {\n if (this.isMain) {\n throw new Error('Cannot leave the main session');\n }\n\n const mainSession = this.parent.breakouts.filter((breakout) => breakout.isMain)[0];\n\n if (!mainSession) {\n throw new Error('Cannot leave, no main session found');\n }\n\n return mainSession.join();\n },\n\n /**\n * Sends a help request for the current breakout\n * @returns {Promise}\n */\n askForHelp() {\n return this.request({\n method: HTTP_VERBS.POST,\n uri: `${this.url}/help`,\n body: {\n groupId: this.groupId,\n sessionId: this.sessionId,\n },\n });\n },\n\n /**\n * Parses the participants from the locus object\n * @param locus Locus object\n * @returns {void}\n */\n\n parseRoster(locus) {\n this.members.locusParticipantsUpdate(locus);\n },\n /*\n * Broadcast message to this breakout session's participants\n * @param {String} message\n * @param {Object} options\n * @returns {Promise}\n */\n broadcast(message, options) {\n return this.breakoutRequest.broadcast({\n url: this.url,\n message,\n options,\n groupId: this.groupId,\n sessionId: this.sessionId,\n });\n },\n});\n\nexport default Breakout;\n"],"mappings":"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"}
|
package/dist/breakouts/index.js
CHANGED
|
@@ -43,6 +43,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
43
43
|
// appears once breakouts start
|
|
44
44
|
enableBreakoutSession: 'boolean',
|
|
45
45
|
// appears from the moment you enable breakouts
|
|
46
|
+
hasBreakoutPreAssignments: 'boolean',
|
|
47
|
+
// appears from the moment you enable breakouts
|
|
46
48
|
groupId: 'string',
|
|
47
49
|
// appears from the moment you enable breakouts
|
|
48
50
|
name: 'string',
|
|
@@ -65,9 +67,12 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
65
67
|
// the locus url of the main session
|
|
66
68
|
groups: 'array',
|
|
67
69
|
// appears when create breakouts
|
|
70
|
+
shouldFetchPreassignments: 'boolean',
|
|
71
|
+
// Controlling the lifecycle of the pre-assign API
|
|
68
72
|
editLock: 'object',
|
|
69
73
|
// appears when getBreakout info editlock = true
|
|
70
|
-
intervalID: 'number'
|
|
74
|
+
intervalID: 'number',
|
|
75
|
+
meetingId: 'string'
|
|
71
76
|
},
|
|
72
77
|
children: {
|
|
73
78
|
currentBreakoutSession: _breakout.default
|
|
@@ -83,6 +88,16 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
83
88
|
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.MAIN;
|
|
84
89
|
}
|
|
85
90
|
},
|
|
91
|
+
isActiveBreakout: {
|
|
92
|
+
deps: ['sessionType', 'status'],
|
|
93
|
+
/**
|
|
94
|
+
* Returns true if the breakout status is active
|
|
95
|
+
* @returns {boolean}
|
|
96
|
+
*/
|
|
97
|
+
fn: function fn() {
|
|
98
|
+
return this.sessionType === _constants.BREAKOUTS.SESSION_TYPES.BREAKOUT && (this.status === _constants.BREAKOUTS.STATUS.OPEN || this.status === _constants.BREAKOUTS.STATUS.CLOSING);
|
|
99
|
+
}
|
|
100
|
+
},
|
|
86
101
|
breakoutGroupId: {
|
|
87
102
|
deps: ['groups'],
|
|
88
103
|
/**
|
|
@@ -228,6 +243,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
228
243
|
*/
|
|
229
244
|
updateBreakout: function updateBreakout(params) {
|
|
230
245
|
var _this$set;
|
|
246
|
+
var preEnableBreakoutSession = this.get('enableBreakoutSession');
|
|
231
247
|
this.set(params);
|
|
232
248
|
this.set('groups', params.groups);
|
|
233
249
|
this.set('currentBreakoutSession', (_this$set = {
|
|
@@ -238,7 +254,11 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
238
254
|
sessionType: params.sessionType,
|
|
239
255
|
url: params.url
|
|
240
256
|
}, (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ACTIVE, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ALLOWED, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.ASSIGNED_CURRENT, false), (0, _defineProperty2.default)(_this$set, _constants.BREAKOUTS.SESSION_STATES.REQUESTED, false), _this$set));
|
|
241
|
-
|
|
257
|
+
|
|
258
|
+
// We need to call queryPreAssignments when enableBreakoutSession become true
|
|
259
|
+
if (params.enableBreakoutSession && params.hasBreakoutPreAssignments && preEnableBreakoutSession !== params.enableBreakoutSession) {
|
|
260
|
+
this.queryPreAssignments();
|
|
261
|
+
}
|
|
242
262
|
},
|
|
243
263
|
/**
|
|
244
264
|
* Updates the information about available breakouts
|
|
@@ -386,13 +406,19 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
386
406
|
* @returns {Promise}
|
|
387
407
|
*/
|
|
388
408
|
doToggleBreakout: function doToggleBreakout(enable) {
|
|
409
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
410
|
+
editlock: {
|
|
411
|
+
token: this.editLock.token
|
|
412
|
+
}
|
|
413
|
+
} : {}), {
|
|
414
|
+
enableBreakoutSession: enable
|
|
415
|
+
});
|
|
416
|
+
|
|
389
417
|
// @ts-ignore
|
|
390
418
|
return this.webex.request({
|
|
391
419
|
method: _constants.HTTP_VERBS.PUT,
|
|
392
420
|
uri: this.url,
|
|
393
|
-
body:
|
|
394
|
-
enableBreakoutSession: enable
|
|
395
|
-
}
|
|
421
|
+
body: body
|
|
396
422
|
});
|
|
397
423
|
},
|
|
398
424
|
/**
|
|
@@ -404,30 +430,26 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
404
430
|
var _this7 = this;
|
|
405
431
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
|
|
406
432
|
var _breakInfo$body;
|
|
407
|
-
var
|
|
433
|
+
var body, breakInfo;
|
|
408
434
|
return _regenerator.default.wrap(function _callee2$(_context2) {
|
|
409
435
|
while (1) switch (_context2.prev = _context2.next) {
|
|
410
436
|
case 0:
|
|
411
|
-
|
|
412
|
-
bodyInfo = _this7.editLock && !!_this7.editLock.token ? {
|
|
413
|
-
groups: [{
|
|
414
|
-
sessions: sessions
|
|
415
|
-
}],
|
|
437
|
+
body = _objectSpread(_objectSpread({}, _this7.editLock && !!_this7.editLock.token ? {
|
|
416
438
|
editlock: {
|
|
417
439
|
token: _this7.editLock.token
|
|
418
440
|
}
|
|
419
|
-
} : {
|
|
441
|
+
} : {}), {
|
|
420
442
|
groups: [{
|
|
421
443
|
sessions: sessions
|
|
422
444
|
}]
|
|
423
|
-
};
|
|
445
|
+
}); // @ts-ignore
|
|
424
446
|
_context2.next = 3;
|
|
425
447
|
return _this7.webex.request({
|
|
426
448
|
method: _constants.HTTP_VERBS.PUT,
|
|
427
449
|
uri: _this7.url,
|
|
428
|
-
body:
|
|
450
|
+
body: body
|
|
429
451
|
}).catch(function (error) {
|
|
430
|
-
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create
|
|
452
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#create'));
|
|
431
453
|
});
|
|
432
454
|
case 3:
|
|
433
455
|
breakInfo = _context2.sent;
|
|
@@ -453,38 +475,35 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
453
475
|
var _this8 = this;
|
|
454
476
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
|
|
455
477
|
var _breakInfo$body2;
|
|
456
|
-
var
|
|
478
|
+
var body, breakInfo;
|
|
457
479
|
return _regenerator.default.wrap(function _callee3$(_context3) {
|
|
458
480
|
while (1) switch (_context3.prev = _context3.next) {
|
|
459
481
|
case 0:
|
|
460
|
-
|
|
461
|
-
bodyInfo = _this8.editLock && !!_this8.editLock.token ? {
|
|
462
|
-
groups: [{
|
|
463
|
-
action: _constants.BREAKOUTS.ACTION.DELETE
|
|
464
|
-
}],
|
|
482
|
+
body = _objectSpread(_objectSpread({}, _this8.editLock && !!_this8.editLock.token ? {
|
|
465
483
|
editlock: {
|
|
466
484
|
token: _this8.editLock.token
|
|
467
485
|
}
|
|
468
|
-
} : {
|
|
486
|
+
} : {}), {
|
|
469
487
|
groups: [{
|
|
470
488
|
action: _constants.BREAKOUTS.ACTION.DELETE
|
|
471
489
|
}]
|
|
472
|
-
};
|
|
490
|
+
}); // @ts-ignore
|
|
473
491
|
_context3.next = 3;
|
|
474
492
|
return _this8.webex.request({
|
|
475
493
|
method: _constants.HTTP_VERBS.PUT,
|
|
476
494
|
uri: _this8.url,
|
|
477
|
-
body:
|
|
495
|
+
body: body
|
|
478
496
|
}).catch(function (error) {
|
|
479
|
-
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions
|
|
497
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#clearSessions'));
|
|
480
498
|
});
|
|
481
499
|
case 3:
|
|
482
500
|
breakInfo = _context3.sent;
|
|
483
501
|
if ((_breakInfo$body2 = breakInfo.body) !== null && _breakInfo$body2 !== void 0 && _breakInfo$body2.groups) {
|
|
484
502
|
_this8.set('groups', breakInfo.body.groups);
|
|
485
503
|
}
|
|
504
|
+
_this8.shouldFetchPreassignments = false;
|
|
486
505
|
return _context3.abrupt("return", _promise.default.resolve(breakInfo));
|
|
487
|
-
case
|
|
506
|
+
case 7:
|
|
488
507
|
case "end":
|
|
489
508
|
return _context3.stop();
|
|
490
509
|
}
|
|
@@ -506,14 +525,20 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
506
525
|
allowToJoinLater: false,
|
|
507
526
|
duration: _constants.BREAKOUTS.DEFAULT_DURATION
|
|
508
527
|
}, params);
|
|
528
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
529
|
+
editlock: {
|
|
530
|
+
token: this.editLock.token,
|
|
531
|
+
refresh: true
|
|
532
|
+
}
|
|
533
|
+
} : {}), {
|
|
534
|
+
groups: [payload]
|
|
535
|
+
});
|
|
509
536
|
return this.request({
|
|
510
537
|
method: _constants.HTTP_VERBS.PUT,
|
|
511
538
|
uri: this.url,
|
|
512
|
-
body:
|
|
513
|
-
groups: [payload]
|
|
514
|
-
}
|
|
539
|
+
body: body
|
|
515
540
|
}).catch(function (error) {
|
|
516
|
-
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start
|
|
541
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#start'));
|
|
517
542
|
});
|
|
518
543
|
},
|
|
519
544
|
/**
|
|
@@ -531,14 +556,48 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
531
556
|
action: action,
|
|
532
557
|
delayCloseTime: delayCloseTime
|
|
533
558
|
}, params);
|
|
559
|
+
var body = _objectSpread(_objectSpread({}, this.editLock && !!this.editLock.token ? {
|
|
560
|
+
editlock: {
|
|
561
|
+
token: this.editLock.token,
|
|
562
|
+
refresh: true
|
|
563
|
+
}
|
|
564
|
+
} : {}), {
|
|
565
|
+
groups: [payload]
|
|
566
|
+
});
|
|
534
567
|
return this.request({
|
|
535
568
|
method: _constants.HTTP_VERBS.PUT,
|
|
536
569
|
uri: this.url,
|
|
537
|
-
body:
|
|
538
|
-
|
|
570
|
+
body: body
|
|
571
|
+
}).catch(function (error) {
|
|
572
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#end'));
|
|
573
|
+
});
|
|
574
|
+
},
|
|
575
|
+
/**
|
|
576
|
+
* Host or cohost update breakout sessions
|
|
577
|
+
* @param {Object} params
|
|
578
|
+
* @param {String} params.id
|
|
579
|
+
* @returns {Promise}
|
|
580
|
+
*/
|
|
581
|
+
update: function update(params) {
|
|
582
|
+
var _this$editLock;
|
|
583
|
+
if (!params.id) {
|
|
584
|
+
return _promise.default.reject(new Error('Missing breakout group id'));
|
|
585
|
+
}
|
|
586
|
+
var payload = _objectSpread({}, params);
|
|
587
|
+
var body = _objectSpread(_objectSpread({}, (_this$editLock = this.editLock) !== null && _this$editLock !== void 0 && _this$editLock.token ? {
|
|
588
|
+
editlock: {
|
|
589
|
+
token: this.editLock.token,
|
|
590
|
+
refresh: true
|
|
539
591
|
}
|
|
592
|
+
} : {}), {
|
|
593
|
+
groups: [payload]
|
|
594
|
+
});
|
|
595
|
+
return this.request({
|
|
596
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
597
|
+
uri: this.url,
|
|
598
|
+
body: body
|
|
540
599
|
}).catch(function (error) {
|
|
541
|
-
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#
|
|
600
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#update'));
|
|
542
601
|
});
|
|
543
602
|
},
|
|
544
603
|
/**
|
|
@@ -549,7 +608,7 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
549
608
|
getBreakout: function getBreakout(editlock) {
|
|
550
609
|
var _this9 = this;
|
|
551
610
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee4() {
|
|
552
|
-
var _breakout$body, _breakout$body2;
|
|
611
|
+
var _breakout$body, _breakout$body2, _breakout$body2$editl;
|
|
553
612
|
var breakout;
|
|
554
613
|
return _regenerator.default.wrap(function _callee4$(_context4) {
|
|
555
614
|
while (1) switch (_context4.prev = _context4.next) {
|
|
@@ -564,8 +623,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
564
623
|
if ((_breakout$body = breakout.body) !== null && _breakout$body !== void 0 && _breakout$body.groups) {
|
|
565
624
|
_this9.set('groups', breakout.body.groups);
|
|
566
625
|
}
|
|
567
|
-
if ((_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && _breakout$body2.editlock &&
|
|
626
|
+
if (editlock && (_breakout$body2 = breakout.body) !== null && _breakout$body2 !== void 0 && (_breakout$body2$editl = _breakout$body2.editlock) !== null && _breakout$body2$editl !== void 0 && _breakout$body2$editl.token) {
|
|
568
627
|
_this9.set('editLock', breakout.body.editlock);
|
|
628
|
+
_this9.keepEditLockAlive();
|
|
569
629
|
}
|
|
570
630
|
return _context4.abrupt("return", breakout);
|
|
571
631
|
case 6:
|
|
@@ -656,6 +716,9 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
656
716
|
var _this12 = this;
|
|
657
717
|
if (this.editLock && !!this.editLock.token) {
|
|
658
718
|
var ttl = this.editLock.ttl < 30 ? _constants.BREAKOUTS.DEFAULT_TTL : this.editLock.ttl;
|
|
719
|
+
if (this.intervalID) {
|
|
720
|
+
window.clearInterval(this.intervalID);
|
|
721
|
+
}
|
|
659
722
|
this.intervalID = window.setInterval(function () {
|
|
660
723
|
_this12.request({
|
|
661
724
|
method: _constants.HTTP_VERBS.PUT,
|
|
@@ -673,14 +736,16 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
673
736
|
*/
|
|
674
737
|
unLockEditBreakout: function unLockEditBreakout() {
|
|
675
738
|
var _this13 = this;
|
|
676
|
-
this.
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
|
|
682
|
-
|
|
683
|
-
|
|
739
|
+
if (this.editLock && !!this.editLock.token) {
|
|
740
|
+
this.request({
|
|
741
|
+
method: _constants.HTTP_VERBS.DELETE,
|
|
742
|
+
uri: "".concat(this.url, "/editlock/").concat(this.editLock.token)
|
|
743
|
+
}).then(function () {
|
|
744
|
+
_this13._clearEditLockInfo();
|
|
745
|
+
}).catch(function (error) {
|
|
746
|
+
return _promise.default.reject((0, _utils.boServiceErrorHandler)(error, 'Breakouts#unLockEditBreakout'));
|
|
747
|
+
});
|
|
748
|
+
}
|
|
684
749
|
},
|
|
685
750
|
/**
|
|
686
751
|
* clear interval and edit lock info
|
|
@@ -703,7 +768,8 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
703
768
|
return {
|
|
704
769
|
id: item.id,
|
|
705
770
|
assigned: item.memberIds,
|
|
706
|
-
assignedEmails: item.emails
|
|
771
|
+
assignedEmails: item.emails,
|
|
772
|
+
anyoneCanJoin: !!item.anyone
|
|
707
773
|
};
|
|
708
774
|
});
|
|
709
775
|
return this.request({
|
|
@@ -717,7 +783,60 @@ var Breakouts = _webexCore.WebexPlugin.extend({
|
|
|
717
783
|
}
|
|
718
784
|
});
|
|
719
785
|
},
|
|
720
|
-
|
|
786
|
+
/**
|
|
787
|
+
* The pre-assignments need to be queried when "hasBreakoutPreAssignments" is true
|
|
788
|
+
* @returns {void}
|
|
789
|
+
*/
|
|
790
|
+
queryPreAssignments: function queryPreAssignments() {
|
|
791
|
+
var _this14 = this;
|
|
792
|
+
if (!this.shouldFetchPreassignments) {
|
|
793
|
+
this.webex.request({
|
|
794
|
+
uri: "".concat(this.url, "/preassignments"),
|
|
795
|
+
qs: {
|
|
796
|
+
locusUrl: btoa(this.locusUrl)
|
|
797
|
+
}
|
|
798
|
+
}).then(function (result) {
|
|
799
|
+
var _result$body;
|
|
800
|
+
if ((_result$body = result.body) !== null && _result$body !== void 0 && _result$body.groups) {
|
|
801
|
+
_this14.set('groups', result.body.groups);
|
|
802
|
+
}
|
|
803
|
+
}).catch(function (error) {
|
|
804
|
+
_loggerProxy.default.logger.error('Meeting:breakouts#queryPreAssignments failed', error);
|
|
805
|
+
});
|
|
806
|
+
this.shouldFetchPreassignments = true;
|
|
807
|
+
}
|
|
808
|
+
},
|
|
809
|
+
/**
|
|
810
|
+
* assign participants dynamically after breakout sessions started,
|
|
811
|
+
* but currently it only used for admitting participants from lobby into breakout directly
|
|
812
|
+
* @param {Array} sessions
|
|
813
|
+
* @returns {void}
|
|
814
|
+
*/
|
|
815
|
+
dynamicAssign: function dynamicAssign(sessions) {
|
|
816
|
+
var updatedSessions = sessions.map(function (item) {
|
|
817
|
+
return {
|
|
818
|
+
id: item.id,
|
|
819
|
+
participants: item.participants,
|
|
820
|
+
targetState: item.targetState
|
|
821
|
+
};
|
|
822
|
+
});
|
|
823
|
+
var body = {
|
|
824
|
+
groups: [{
|
|
825
|
+
id: this.breakoutGroupId,
|
|
826
|
+
sessions: updatedSessions
|
|
827
|
+
}],
|
|
828
|
+
editlock: null
|
|
829
|
+
};
|
|
830
|
+
if (this.editLock && this.editLock.token) {
|
|
831
|
+
body.editlock = this.editLock;
|
|
832
|
+
}
|
|
833
|
+
return this.request({
|
|
834
|
+
method: _constants.HTTP_VERBS.PUT,
|
|
835
|
+
uri: "".concat(this.url, "/dynamicAssign"),
|
|
836
|
+
body: body
|
|
837
|
+
});
|
|
838
|
+
},
|
|
839
|
+
version: "3.0.0-bnr.2"
|
|
721
840
|
});
|
|
722
841
|
var _default = Breakouts;
|
|
723
842
|
exports.default = _default;
|