@webex/internal-plugin-team 3.0.0-beta.5 → 3.0.0-beta.51
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/config.js +0 -3
- package/dist/config.js.map +1 -1
- package/dist/index.js +4 -23
- package/dist/index.js.map +1 -1
- package/dist/team.js +92 -141
- package/dist/team.js.map +1 -1
- package/package.json +11 -11
- package/src/config.js +1 -1
- package/src/index.js +49 -33
- package/src/team.js +129 -84
- package/test/integration/spec/actions.js +326 -295
- package/test/integration/spec/create.js +81 -51
- package/test/integration/spec/get.js +47 -45
- package/test/integration/spec/mercury.js +53 -43
- package/test/unit/spec/team.js +79 -26
package/dist/team.js
CHANGED
|
@@ -1,50 +1,37 @@
|
|
|
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");
|
|
8
|
+
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
3
9
|
var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
|
|
4
|
-
|
|
5
10
|
var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
|
|
6
|
-
|
|
7
11
|
var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator");
|
|
8
|
-
|
|
9
12
|
var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
|
|
10
|
-
|
|
11
|
-
var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
|
|
12
|
-
|
|
13
13
|
var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
|
|
14
|
-
|
|
15
14
|
_Object$defineProperty(exports, "__esModule", {
|
|
16
15
|
value: true
|
|
17
16
|
});
|
|
18
|
-
|
|
19
17
|
exports.default = void 0;
|
|
20
|
-
|
|
21
18
|
var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regenerator"));
|
|
22
|
-
|
|
23
19
|
var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
|
|
24
|
-
|
|
25
|
-
var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
|
|
26
|
-
|
|
27
20
|
var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
|
|
28
|
-
|
|
21
|
+
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
|
|
29
22
|
var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
|
|
30
|
-
|
|
31
23
|
var _pick2 = _interopRequireDefault(require("lodash/pick"));
|
|
32
|
-
|
|
33
24
|
var _find2 = _interopRequireDefault(require("lodash/find"));
|
|
34
|
-
|
|
35
25
|
var _querystring = _interopRequireDefault(require("querystring"));
|
|
36
|
-
|
|
26
|
+
var _uuid = _interopRequireDefault(require("uuid"));
|
|
37
27
|
var _webexCore = require("@webex/webex-core");
|
|
38
|
-
|
|
39
28
|
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof _Symbol !== "undefined" && o[_Symbol$iterator] || o["@@iterator"]; if (!it) { if (_Array$isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }
|
|
40
|
-
|
|
41
29
|
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return _Array$from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
|
|
42
|
-
|
|
43
|
-
function
|
|
44
|
-
|
|
30
|
+
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
|
|
31
|
+
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; }
|
|
32
|
+
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; }
|
|
45
33
|
var Team = _webexCore.WebexPlugin.extend({
|
|
46
34
|
namespace: 'Team',
|
|
47
|
-
|
|
48
35
|
/**
|
|
49
36
|
* Move an existing group conversation into a team.
|
|
50
37
|
* @param {TeamObject} team
|
|
@@ -56,7 +43,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
56
43
|
*/
|
|
57
44
|
addConversation: function addConversation(team, conversation, activity) {
|
|
58
45
|
var _this = this;
|
|
59
|
-
|
|
60
46
|
return this._ensureGeneralConversation(team).then(function (generalConversation) {
|
|
61
47
|
return _this.webex.internal.conversation.prepare(activity, {
|
|
62
48
|
verb: 'add',
|
|
@@ -76,7 +62,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
76
62
|
return _this.webex.internal.conversation.submit(a);
|
|
77
63
|
});
|
|
78
64
|
},
|
|
79
|
-
|
|
80
65
|
/**
|
|
81
66
|
* Add a member to a team
|
|
82
67
|
* @param {TeamObject} team
|
|
@@ -88,12 +73,10 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
88
73
|
*/
|
|
89
74
|
addMember: function addMember(team, participant, activity) {
|
|
90
75
|
var _this2 = this;
|
|
91
|
-
|
|
92
76
|
return this._ensureGeneralConversation(team).then(function (generalConversation) {
|
|
93
77
|
return _this2.webex.internal.conversation.add(generalConversation, participant, activity);
|
|
94
78
|
});
|
|
95
79
|
},
|
|
96
|
-
|
|
97
80
|
/**
|
|
98
81
|
* Create a team
|
|
99
82
|
* @param {NewTeamObject} params
|
|
@@ -104,15 +87,12 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
104
87
|
*/
|
|
105
88
|
create: function create(params) {
|
|
106
89
|
var _this3 = this;
|
|
107
|
-
|
|
108
90
|
if (!params.displayName) {
|
|
109
91
|
return _promise.default.reject(new Error('`params.displayName` is required'));
|
|
110
92
|
}
|
|
111
|
-
|
|
112
93
|
if (!params.participants || params.participants.length === 0) {
|
|
113
94
|
return _promise.default.reject(new Error('`params.participants` is required'));
|
|
114
95
|
}
|
|
115
|
-
|
|
116
96
|
return _promise.default.all(params.participants.map(function (participant) {
|
|
117
97
|
return _this3.webex.internal.user.asUUID(participant, {
|
|
118
98
|
create: true
|
|
@@ -133,7 +113,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
133
113
|
return res.body;
|
|
134
114
|
});
|
|
135
115
|
},
|
|
136
|
-
|
|
137
116
|
/**
|
|
138
117
|
* Create a conversation within a team. Currently does not support
|
|
139
118
|
* activities besides add (ie no post or share activities).
|
|
@@ -148,17 +127,13 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
148
127
|
*/
|
|
149
128
|
createConversation: function createConversation(team, params) {
|
|
150
129
|
var _this4 = this;
|
|
151
|
-
|
|
152
130
|
var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
|
|
153
|
-
|
|
154
131
|
if (!team.url) {
|
|
155
132
|
return _promise.default.reject(new Error('`team.url` is required'));
|
|
156
133
|
}
|
|
157
|
-
|
|
158
134
|
if (!params.displayName) {
|
|
159
135
|
return _promise.default.reject(new Error('`params.displayName` is required'));
|
|
160
136
|
}
|
|
161
|
-
|
|
162
137
|
return this._ensureGeneralConversation(team).then(function (generalConversation) {
|
|
163
138
|
return _promise.default.all(params.participants.map(function (participant) {
|
|
164
139
|
return _this4.webex.internal.user.asUUID(participant, {
|
|
@@ -181,7 +156,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
181
156
|
return res.body;
|
|
182
157
|
});
|
|
183
158
|
},
|
|
184
|
-
|
|
185
159
|
/**
|
|
186
160
|
* Retrieve a single team
|
|
187
161
|
* @param {Object|Team~TeamObject} team
|
|
@@ -193,15 +167,12 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
193
167
|
*/
|
|
194
168
|
get: function get(_ref) {
|
|
195
169
|
var _this5 = this;
|
|
196
|
-
|
|
197
170
|
var url = _ref.url;
|
|
198
171
|
var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
199
|
-
|
|
200
172
|
if (!url) {
|
|
201
173
|
return _promise.default.reject(new Error('`team.url` is required'));
|
|
202
174
|
}
|
|
203
|
-
|
|
204
|
-
var params = (0, _assign.default)({
|
|
175
|
+
var params = _objectSpread({
|
|
205
176
|
includeTeamConversations: false,
|
|
206
177
|
includeTeamMembers: false
|
|
207
178
|
}, options);
|
|
@@ -214,7 +185,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
214
185
|
});
|
|
215
186
|
});
|
|
216
187
|
},
|
|
217
|
-
|
|
218
188
|
/**
|
|
219
189
|
* Get the list of conversations for a particular team
|
|
220
190
|
* @param {TeamObject} team
|
|
@@ -223,33 +193,50 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
223
193
|
*/
|
|
224
194
|
listConversations: function listConversations(_ref2) {
|
|
225
195
|
var url = _ref2.url;
|
|
226
|
-
|
|
227
196
|
if (!url) {
|
|
228
197
|
return _promise.default.reject(new Error('`team.url` is required'));
|
|
229
198
|
}
|
|
230
|
-
|
|
231
199
|
return this.webex.request({
|
|
232
200
|
uri: "".concat(url, "/conversations")
|
|
233
201
|
}).then(function (res) {
|
|
234
202
|
return res.body.items;
|
|
235
203
|
});
|
|
236
204
|
},
|
|
237
|
-
|
|
238
205
|
/**
|
|
239
206
|
* Join a team conversation
|
|
240
207
|
* @param {TeamObject} team
|
|
241
208
|
* @param {ConversationObject} conversation
|
|
209
|
+
* @param {userId} userId
|
|
242
210
|
* @returns {Promise} Resolves with the conversation
|
|
243
211
|
*/
|
|
244
|
-
joinConversation: function joinConversation(team, conversation) {
|
|
212
|
+
joinConversation: function joinConversation(team, conversation, userId) {
|
|
213
|
+
if (!userId) {
|
|
214
|
+
return _promise.default.reject(new Error('`userId` is required'));
|
|
215
|
+
}
|
|
216
|
+
var body = {
|
|
217
|
+
kmsMessage: {
|
|
218
|
+
client: {
|
|
219
|
+
clientId: this.webex.internal.device.url,
|
|
220
|
+
credential: {
|
|
221
|
+
bearer: this.webex.credentials.supertoken.access_token,
|
|
222
|
+
userId: userId
|
|
223
|
+
}
|
|
224
|
+
},
|
|
225
|
+
method: 'create',
|
|
226
|
+
requestId: _uuid.default.v4(),
|
|
227
|
+
resourceUri: conversation.kmsResourceObjectUrl,
|
|
228
|
+
uri: '/authorizations',
|
|
229
|
+
userIds: [userId]
|
|
230
|
+
}
|
|
231
|
+
};
|
|
245
232
|
return this.webex.request({
|
|
246
233
|
method: 'POST',
|
|
247
|
-
uri: "".concat(team.url, "/conversations/").concat(conversation.id, "/participants")
|
|
234
|
+
uri: "".concat(team.url, "/conversations/").concat(conversation.id, "/participants"),
|
|
235
|
+
body: body
|
|
248
236
|
}).then(function (res) {
|
|
249
237
|
return res.body;
|
|
250
238
|
});
|
|
251
239
|
},
|
|
252
|
-
|
|
253
240
|
/**
|
|
254
241
|
* Retrieve all teams
|
|
255
242
|
* @param {Object} options
|
|
@@ -259,82 +246,68 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
259
246
|
*/
|
|
260
247
|
list: function list() {
|
|
261
248
|
var _arguments = arguments,
|
|
262
|
-
|
|
263
|
-
|
|
249
|
+
_this6 = this;
|
|
264
250
|
return (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
|
|
265
251
|
var options, params, resource, res, list, results, _iterator, _step, result;
|
|
266
|
-
|
|
267
252
|
return _regenerator.default.wrap(function _callee$(_context) {
|
|
268
|
-
while (1) {
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
253
|
+
while (1) switch (_context.prev = _context.next) {
|
|
254
|
+
case 0:
|
|
255
|
+
options = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
|
|
256
|
+
params = _objectSpread({
|
|
257
|
+
includeTeamConversations: false,
|
|
258
|
+
includeTeamMembers: false
|
|
259
|
+
}, options);
|
|
260
|
+
resource = 'teams';
|
|
261
|
+
_context.next = 5;
|
|
262
|
+
return _this6.webex.request({
|
|
263
|
+
api: 'conversation',
|
|
264
|
+
resource: resource,
|
|
265
|
+
qs: params
|
|
266
|
+
});
|
|
267
|
+
case 5:
|
|
268
|
+
res = _context.sent;
|
|
269
|
+
list = res.body.items.slice(0);
|
|
270
|
+
if (!res.body.additionalUrls) {
|
|
271
|
+
_context.next = 13;
|
|
272
|
+
break;
|
|
273
|
+
}
|
|
274
|
+
_context.next = 10;
|
|
275
|
+
return _promise.default.all(res.body.additionalUrls.map(function (host) {
|
|
276
|
+
var uri = "".concat(host, "/").concat(resource);
|
|
278
277
|
return _this6.webex.request({
|
|
279
|
-
|
|
280
|
-
resource: resource,
|
|
278
|
+
uri: uri,
|
|
281
279
|
qs: params
|
|
282
280
|
});
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
_context.next = 10;
|
|
294
|
-
return _promise.default.all(res.body.additionalUrls.map(function (host) {
|
|
295
|
-
var uri = "".concat(host, "/").concat(resource);
|
|
296
|
-
return _this6.webex.request({
|
|
297
|
-
uri: uri,
|
|
298
|
-
qs: params
|
|
299
|
-
});
|
|
300
|
-
}));
|
|
301
|
-
|
|
302
|
-
case 10:
|
|
303
|
-
results = _context.sent;
|
|
304
|
-
_iterator = _createForOfIteratorHelper(results);
|
|
305
|
-
|
|
306
|
-
try {
|
|
307
|
-
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
308
|
-
result = _step.value;
|
|
309
|
-
|
|
310
|
-
if (result.body && result.body.items && result.body.items.length) {
|
|
311
|
-
list = list.concat(result.body.items);
|
|
312
|
-
}
|
|
281
|
+
}));
|
|
282
|
+
case 10:
|
|
283
|
+
results = _context.sent;
|
|
284
|
+
_iterator = _createForOfIteratorHelper(results);
|
|
285
|
+
try {
|
|
286
|
+
for (_iterator.s(); !(_step = _iterator.n()).done;) {
|
|
287
|
+
result = _step.value;
|
|
288
|
+
if (result.body && result.body.items && result.body.items.length) {
|
|
289
|
+
list = list.concat(result.body.items);
|
|
313
290
|
}
|
|
314
|
-
} catch (err) {
|
|
315
|
-
_iterator.e(err);
|
|
316
|
-
} finally {
|
|
317
|
-
_iterator.f();
|
|
318
291
|
}
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
return
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
292
|
+
} catch (err) {
|
|
293
|
+
_iterator.e(err);
|
|
294
|
+
} finally {
|
|
295
|
+
_iterator.f();
|
|
296
|
+
}
|
|
297
|
+
case 13:
|
|
298
|
+
_context.next = 15;
|
|
299
|
+
return _promise.default.all(res.body.items.map(function (team) {
|
|
300
|
+
return _this6._recordUUIDs(team);
|
|
301
|
+
}));
|
|
302
|
+
case 15:
|
|
303
|
+
return _context.abrupt("return", list);
|
|
304
|
+
case 16:
|
|
305
|
+
case "end":
|
|
306
|
+
return _context.stop();
|
|
333
307
|
}
|
|
334
308
|
}, _callee);
|
|
335
309
|
}))();
|
|
336
310
|
},
|
|
337
|
-
|
|
338
311
|
/**
|
|
339
312
|
* Remove a member from a team
|
|
340
313
|
* @param {TeamObject} team
|
|
@@ -346,12 +319,10 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
346
319
|
*/
|
|
347
320
|
removeMember: function removeMember(team, participant, activity) {
|
|
348
321
|
var _this7 = this;
|
|
349
|
-
|
|
350
322
|
return this._ensureGeneralConversation(team).then(function (generalConversation) {
|
|
351
323
|
return _this7.webex.internal.conversation.leave(generalConversation, participant, activity);
|
|
352
324
|
});
|
|
353
325
|
},
|
|
354
|
-
|
|
355
326
|
/**
|
|
356
327
|
* Remove a team conversation from a team.
|
|
357
328
|
* @param {TeamObject} team
|
|
@@ -363,7 +334,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
363
334
|
*/
|
|
364
335
|
removeConversation: function removeConversation(team, conversation, activity) {
|
|
365
336
|
var _this8 = this;
|
|
366
|
-
|
|
367
337
|
return this._ensureGeneralConversation(team).then(function (generalConversation) {
|
|
368
338
|
var properties = {
|
|
369
339
|
verb: 'remove',
|
|
@@ -381,7 +351,6 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
381
351
|
return _this8.webex.internal.conversation.submit(a);
|
|
382
352
|
});
|
|
383
353
|
},
|
|
384
|
-
|
|
385
354
|
/**
|
|
386
355
|
* Update the displayName, summary, or teamColor field for a team.
|
|
387
356
|
* @param {TeamObject} team to be updated
|
|
@@ -394,73 +363,60 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
394
363
|
update: function update(team, object, activity) {
|
|
395
364
|
return this.webex.internal.conversation.update(team, object, activity);
|
|
396
365
|
},
|
|
397
|
-
|
|
398
|
-
/* eslint-disable require-jsdoc */
|
|
399
|
-
_ensureGeneralConversation: function _ensureGeneralConversation(team) {
|
|
366
|
+
/* eslint-disable require-jsdoc */_ensureGeneralConversation: function _ensureGeneralConversation(team) {
|
|
400
367
|
if (!team.generalConversationUuid) {
|
|
401
368
|
return _promise.default.reject(new Error('`team.generalConversationUuid` must be present'));
|
|
402
369
|
}
|
|
403
|
-
|
|
404
370
|
if (team.conversations.items.length) {
|
|
405
371
|
var generalConversation = (0, _find2.default)(team.conversations.items, {
|
|
406
372
|
id: team.generalConversationUuid
|
|
407
373
|
});
|
|
408
|
-
|
|
409
374
|
if (generalConversation) {
|
|
410
375
|
return _promise.default.resolve(generalConversation);
|
|
411
376
|
}
|
|
412
377
|
}
|
|
413
|
-
|
|
414
378
|
return this.webex.internal.conversation.get({
|
|
415
379
|
id: team.generalConversationUuid
|
|
416
380
|
});
|
|
417
381
|
},
|
|
418
382
|
_prepareTeam: function _prepareTeam(params) {
|
|
419
383
|
var payload = this.webex.internal.conversation._prepareConversationForCreation(params);
|
|
420
|
-
|
|
421
384
|
payload.objectType = 'team';
|
|
422
|
-
|
|
423
385
|
if (params.summary) {
|
|
424
386
|
payload.summary = params.summary;
|
|
425
387
|
}
|
|
426
|
-
|
|
427
388
|
return _promise.default.resolve(payload);
|
|
428
389
|
},
|
|
429
390
|
_prepareTeamConversation: function _prepareTeamConversation(teamConversation, params) {
|
|
430
391
|
if (!teamConversation.kmsResourceObjectUrl) {
|
|
431
392
|
return _promise.default.reject(new Error('Team general conversation must have a KRO'));
|
|
432
393
|
}
|
|
394
|
+
var payload = this.webex.internal.conversation._prepareConversationForCreation(params);
|
|
433
395
|
|
|
434
|
-
|
|
396
|
+
// Push the general conversation KRO on so that team members can
|
|
435
397
|
// decrypt the title of this open room without joining it.
|
|
436
|
-
|
|
437
|
-
|
|
438
398
|
payload.kmsMessage.userIds.push(teamConversation.kmsResourceObjectUrl);
|
|
439
399
|
return _promise.default.resolve(payload);
|
|
440
400
|
},
|
|
441
401
|
_recordUUIDs: function _recordUUIDs(team) {
|
|
442
402
|
var _this9 = this;
|
|
443
|
-
|
|
444
403
|
if (!team.teamMembers || !team.teamMembers.items) {
|
|
445
404
|
return _promise.default.resolve(team);
|
|
446
405
|
}
|
|
447
|
-
|
|
448
406
|
return _promise.default.all(team.teamMembers.items.map(function (participant) {
|
|
449
407
|
// ROOMs or LYRA_SPACEs do not have email addresses, so there's no point attempting to
|
|
450
408
|
// record their UUIDs.
|
|
451
409
|
if (participant.type === 'ROOM' || participant.type === 'LYRA_SPACE') {
|
|
452
410
|
return _promise.default.resolve();
|
|
453
411
|
}
|
|
454
|
-
|
|
455
412
|
return _this9.webex.internal.user.recordUUID(participant).catch(function (err) {
|
|
456
413
|
return _this9.logger.warn('Could not record uuid', err);
|
|
457
414
|
});
|
|
458
415
|
}));
|
|
459
|
-
}
|
|
460
|
-
|
|
461
|
-
,
|
|
462
|
-
version: "3.0.0-beta.5"
|
|
416
|
+
} /* eslint-enable require-jsdoc */,
|
|
417
|
+
version: "3.0.0-beta.51"
|
|
463
418
|
});
|
|
419
|
+
|
|
464
420
|
/**
|
|
465
421
|
* Assign or unassign a team member to be a moderator of a team
|
|
466
422
|
* @param {TeamObject} team
|
|
@@ -468,17 +424,15 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
468
424
|
* @param {Object} activity
|
|
469
425
|
* @returns {Promise} Resolves with activity that was posted
|
|
470
426
|
*/
|
|
471
|
-
|
|
472
|
-
|
|
473
427
|
['assignModerator', 'unassignModerator'].forEach(function (verb) {
|
|
474
428
|
Team.prototype[verb] = function submitModerationChangeActivity(team, member, activity) {
|
|
475
429
|
var _this10 = this;
|
|
476
|
-
|
|
477
430
|
return this._ensureGeneralConversation(team).then(function (teamConversation) {
|
|
478
431
|
return _this10.webex.internal.conversation[verb](teamConversation, member, activity);
|
|
479
432
|
});
|
|
480
433
|
};
|
|
481
434
|
});
|
|
435
|
+
|
|
482
436
|
/**
|
|
483
437
|
* Archive or unarchive a team or team conversation.
|
|
484
438
|
* @param {TeamObject|ConversationObject} target team or team conversation that should be archived
|
|
@@ -487,15 +441,12 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
487
441
|
* provisional activity
|
|
488
442
|
* @returns {Promise} Resolves with the posted activity
|
|
489
443
|
*/
|
|
490
|
-
|
|
491
444
|
['archive', 'unarchive'].forEach(function (verb) {
|
|
492
445
|
Team.prototype[verb] = function submitArchiveStateChangeActivity(target, activity) {
|
|
493
446
|
var _this11 = this;
|
|
494
|
-
|
|
495
447
|
if (!target.objectType) {
|
|
496
448
|
return _promise.default.reject(new Error('`target.objectType` is required'));
|
|
497
449
|
}
|
|
498
|
-
|
|
499
450
|
var properties = {
|
|
500
451
|
verb: verb,
|
|
501
452
|
object: (0, _pick2.default)(target, 'id', 'url', 'objectType'),
|
package/dist/team.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Team","WebexPlugin","extend","namespace","addConversation","team","conversation","activity","_ensureGeneralConversation","then","generalConversation","webex","internal","prepare","verb","target","prepareConversation","object","id","objectType","kmsMessage","method","uri","resourceUri","kmsResourceObjectUrl","userIds","a","submit","addMember","participant","add","create","params","displayName","reject","Error","participants","length","all","map","user","asUUID","unshift","device","userId","_prepareTeam","payload","request","service","resource","body","res","createConversation","options","url","_prepareTeamConversation","qs","get","includeTeamConversations","includeTeamMembers","_recordUUIDs","listConversations","items","joinConversation","list","api","slice","additionalUrls","host","results","result","concat","removeMember","leave","removeConversation","properties","querystring","stringify","authId","update","generalConversationUuid","conversations","resolve","_prepareConversationForCreation","summary","teamConversation","push","teamMembers","type","recordUUID","catch","err","logger","warn","forEach","prototype","submitModerationChangeActivity","member","submitArchiveStateChangeActivity","teamUrl","getConvoUrl"],"sources":["team.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\n\nimport {find, pick, uniq} from 'lodash';\nimport {WebexPlugin} from '@webex/webex-core';\n\nconst Team = WebexPlugin.extend({\n namespace: 'Team',\n\n /**\n * Move an existing group conversation into a team.\n * @param {TeamObject} team\n * @param {ConversationObject} conversation\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with the add activity\n */\n addConversation(team, conversation, activity) {\n return this._ensureGeneralConversation(team)\n .then((generalConversation) => this.webex.internal.conversation.prepare(activity, {\n verb: 'add',\n target: this.webex.internal.conversation.prepareConversation(generalConversation),\n object: {\n id: conversation.id,\n objectType: 'conversation'\n },\n kmsMessage: {\n method: 'create',\n uri: '/authorizations',\n resourceUri: conversation.kmsResourceObjectUrl,\n userIds: [generalConversation.kmsResourceObjectUrl]\n }\n }))\n .then((a) => this.webex.internal.conversation.submit(a));\n },\n\n /**\n * Add a member to a team\n * @param {TeamObject} team\n * @param {Object} participant\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with activity that was posted\n */\n addMember(team, participant, activity) {\n return this._ensureGeneralConversation(team)\n .then((generalConversation) => this.webex.internal.conversation.add(generalConversation, participant, activity));\n },\n\n /**\n * Create a team\n * @param {NewTeamObject} params\n * @param {string} params.displayName\n * @param {string} params.summary\n * @param {Array} params.participants\n * @returns {Promise} Resolves with the created team\n */\n create(params) {\n if (!params.displayName) {\n return Promise.reject(new Error('`params.displayName` is required'));\n }\n\n if (!params.participants || params.participants.length === 0) {\n return Promise.reject(new Error('`params.participants` is required'));\n }\n\n return Promise.all(params.participants.map((participant) => this.webex.internal.user.asUUID(participant, {create: true})))\n .then((participants) => {\n participants.unshift(this.webex.internal.device.userId);\n params.participants = uniq(participants);\n })\n .then(() => this._prepareTeam(params))\n .then((payload) => this.webex.request({\n method: 'POST',\n service: 'conversation',\n resource: 'teams',\n body: payload\n }))\n .then((res) => res.body);\n },\n\n /**\n * Create a conversation within a team. Currently does not support\n * activities besides add (ie no post or share activities).\n * @param {TeamObject} team\n * @param {NewConversationObject} params\n * @param {string} params.displayName\n * @param {string} params.summary\n * @param {Array} params.participants\n * @param {Object} options\n * @param {boolean} options.includeAllTeamMembers\n * @returns {Promise} Resolves with the newly created conversation\n */\n createConversation(team, params, options = {}) {\n if (!team.url) {\n return Promise.reject(new Error('`team.url` is required'));\n }\n\n if (!params.displayName) {\n return Promise.reject(new Error('`params.displayName` is required'));\n }\n\n return this._ensureGeneralConversation(team)\n .then((generalConversation) => Promise.all(params.participants.map((participant) => this.webex.internal.user.asUUID(participant, {create: true})))\n .then((participants) => {\n participants.unshift(this.webex.internal.device.userId);\n params.participants = uniq(participants);\n })\n .then(() => this._prepareTeamConversation(generalConversation, params)))\n .then((payload) => this.webex.request({\n method: 'POST',\n uri: `${team.url}/conversations`,\n qs: pick(options, 'includeAllTeamMembers'),\n body: payload\n }))\n .then((res) => res.body);\n },\n\n /**\n * Retrieve a single team\n * @param {Object|Team~TeamObject} team\n * @param {string} team.url\n * @param {Object} options\n * @param {boolean} options.includeTeamConversations\n * @param {boolean} options.includeTeamMembers\n * @returns {Promise} Resolves with the requested team\n */\n get({url}, options = {}) {\n if (!url) {\n return Promise.reject(new Error('`team.url` is required'));\n }\n const params = Object.assign({\n includeTeamConversations: false,\n includeTeamMembers: false\n }, options);\n\n return this.webex.request({\n uri: url,\n qs: params\n })\n .then((res) => this._recordUUIDs(res.body)\n .then(() => res.body));\n },\n\n /**\n * Get the list of conversations for a particular team\n * @param {TeamObject} team\n * @param {String} team.url\n * @returns {Promise} Resolves with an array of conversations\n */\n listConversations({url}) {\n if (!url) {\n return Promise.reject(new Error('`team.url` is required'));\n }\n\n return this.webex.request({\n uri: `${url}/conversations`\n })\n .then((res) => res.body.items);\n },\n\n /**\n * Join a team conversation\n * @param {TeamObject} team\n * @param {ConversationObject} conversation\n * @returns {Promise} Resolves with the conversation\n */\n joinConversation(team, conversation) {\n return this.webex.request({\n method: 'POST',\n uri: `${team.url}/conversations/${conversation.id}/participants`\n })\n .then((res) => res.body);\n },\n\n /**\n * Retrieve all teams\n * @param {Object} options\n * @param {boolean} options.includeTeamConversations\n * @param {boolean} options.includeTeamMembers\n * @returns {Promise} Resolves with the requested teams\n */\n async list(options = {}) {\n const params = Object.assign({\n includeTeamConversations: false,\n includeTeamMembers: false\n }, options);\n const resource = 'teams';\n\n const res = await this.webex.request({\n api: 'conversation',\n resource,\n qs: params\n });\n\n let list = res.body.items.slice(0);\n\n if (res.body.additionalUrls) {\n const results = await Promise.all(\n res.body.additionalUrls.map((host) => {\n const uri = `${host}/${resource}`;\n\n return this.webex.request({\n uri,\n qs: params\n });\n })\n );\n\n for (const result of results) {\n if (result.body && result.body.items && result.body.items.length) {\n list = list.concat(result.body.items);\n }\n }\n }\n\n await Promise.all(res.body.items.map((team) => this._recordUUIDs(team)));\n\n return list;\n },\n\n /**\n * Remove a member from a team\n * @param {TeamObject} team\n * @param {Object} participant\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with activity that was posted\n */\n removeMember(team, participant, activity) {\n return this._ensureGeneralConversation(team)\n .then((generalConversation) => this.webex.internal.conversation.leave(generalConversation, participant, activity));\n },\n\n /**\n * Remove a team conversation from a team.\n * @param {TeamObject} team\n * @param {ConversationObject} conversation to be removed\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with the leave activity\n */\n removeConversation(team, conversation, activity) {\n return this._ensureGeneralConversation(team)\n .then((generalConversation) => {\n const properties = {\n verb: 'remove',\n object: pick(conversation, 'id', 'url', 'objectType'),\n target: pick(generalConversation, 'id', 'url', 'objectType'),\n kmsMessage: {\n method: 'delete',\n uri: `<KRO>/authorizations?${querystring.stringify({authId: conversation.id})}`\n }\n };\n\n return this.webex.internal.conversation.prepare(activity, properties);\n })\n .then((a) => this.webex.internal.conversation.submit(a));\n },\n\n /**\n * Update the displayName, summary, or teamColor field for a team.\n * @param {TeamObject} team to be updated\n * @param {Object} object with updated displayName, summary, and/or teamColor\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with posted activity\n */\n update(team, object, activity) {\n return this.webex.internal.conversation.update(team, object, activity);\n },\n\n /* eslint-disable require-jsdoc */\n _ensureGeneralConversation(team) {\n if (!team.generalConversationUuid) {\n return Promise.reject(new Error('`team.generalConversationUuid` must be present'));\n }\n\n if (team.conversations.items.length) {\n const generalConversation = find(team.conversations.items, {id: team.generalConversationUuid});\n\n if (generalConversation) {\n return Promise.resolve(generalConversation);\n }\n }\n\n return this.webex.internal.conversation.get({id: team.generalConversationUuid});\n },\n\n _prepareTeam: function _prepareTeam(params) {\n const payload = this.webex.internal.conversation._prepareConversationForCreation(params);\n\n payload.objectType = 'team';\n\n if (params.summary) {\n payload.summary = params.summary;\n }\n\n return Promise.resolve(payload);\n },\n\n _prepareTeamConversation(teamConversation, params) {\n if (!teamConversation.kmsResourceObjectUrl) {\n return Promise.reject(new Error('Team general conversation must have a KRO'));\n }\n\n const payload = this.webex.internal.conversation._prepareConversationForCreation(params);\n\n // Push the general conversation KRO on so that team members can\n // decrypt the title of this open room without joining it.\n payload.kmsMessage.userIds.push(teamConversation.kmsResourceObjectUrl);\n\n return Promise.resolve(payload);\n },\n\n _recordUUIDs(team) {\n if (!team.teamMembers || !team.teamMembers.items) {\n return Promise.resolve(team);\n }\n\n return Promise.all(team.teamMembers.items.map((participant) => {\n // ROOMs or LYRA_SPACEs do not have email addresses, so there's no point attempting to\n // record their UUIDs.\n if (participant.type === 'ROOM' || participant.type === 'LYRA_SPACE') {\n return Promise.resolve();\n }\n\n return this.webex.internal.user.recordUUID(participant)\n .catch((err) => this.logger.warn('Could not record uuid', err));\n }));\n }\n /* eslint-enable require-jsdoc */\n\n});\n\n/**\n * Assign or unassign a team member to be a moderator of a team\n * @param {TeamObject} team\n * @param {Object} participant\n * @param {Object} activity\n * @returns {Promise} Resolves with activity that was posted\n */\n[\n 'assignModerator',\n 'unassignModerator'\n].forEach((verb) => {\n Team.prototype[verb] = function submitModerationChangeActivity(team, member, activity) {\n return this._ensureGeneralConversation(team)\n .then((teamConversation) => this.webex.internal.conversation[verb](teamConversation, member, activity));\n };\n});\n\n/**\n * Archive or unarchive a team or team conversation.\n * @param {TeamObject|ConversationObject} target team or team conversation that should be archived\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with the posted activity\n */\n[\n 'archive',\n 'unarchive'\n].forEach((verb) => {\n Team.prototype[verb] = function submitArchiveStateChangeActivity(target, activity) {\n if (!target.objectType) {\n return Promise.reject(new Error('`target.objectType` is required'));\n }\n\n const properties = {\n verb,\n object: pick(target, 'id', 'url', 'objectType'),\n target: pick(target, 'id', 'url', 'objectType')\n };\n\n const teamUrl = this.webex.internal.conversation.getConvoUrl(target);\n\n return this.webex.internal.conversation\n .prepare(activity, properties)\n .then((a) => this.webex.internal.conversation.submit(a, teamUrl));\n };\n});\n\nexport default Team;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Team","WebexPlugin","extend","namespace","addConversation","team","conversation","activity","_ensureGeneralConversation","then","generalConversation","webex","internal","prepare","verb","target","prepareConversation","object","id","objectType","kmsMessage","method","uri","resourceUri","kmsResourceObjectUrl","userIds","a","submit","addMember","participant","add","create","params","displayName","reject","Error","participants","length","all","map","user","asUUID","unshift","device","userId","_prepareTeam","payload","request","service","resource","body","res","createConversation","options","url","_prepareTeamConversation","qs","get","includeTeamConversations","includeTeamMembers","_recordUUIDs","listConversations","items","joinConversation","client","clientId","credential","bearer","credentials","supertoken","access_token","requestId","uuid","v4","list","api","slice","additionalUrls","host","results","result","concat","removeMember","leave","removeConversation","properties","querystring","stringify","authId","update","generalConversationUuid","conversations","resolve","_prepareConversationForCreation","summary","teamConversation","push","teamMembers","type","recordUUID","catch","err","logger","warn","forEach","prototype","submitModerationChangeActivity","member","submitArchiveStateChangeActivity","teamUrl","getConvoUrl"],"sources":["team.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport querystring from 'querystring';\n\nimport uuid from 'uuid';\nimport {find, pick, uniq} from 'lodash';\nimport {WebexPlugin} from '@webex/webex-core';\n\nconst Team = WebexPlugin.extend({\n namespace: 'Team',\n\n /**\n * Move an existing group conversation into a team.\n * @param {TeamObject} team\n * @param {ConversationObject} conversation\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with the add activity\n */\n addConversation(team, conversation, activity) {\n return this._ensureGeneralConversation(team)\n .then((generalConversation) =>\n this.webex.internal.conversation.prepare(activity, {\n verb: 'add',\n target: this.webex.internal.conversation.prepareConversation(generalConversation),\n object: {\n id: conversation.id,\n objectType: 'conversation',\n },\n kmsMessage: {\n method: 'create',\n uri: '/authorizations',\n resourceUri: conversation.kmsResourceObjectUrl,\n userIds: [generalConversation.kmsResourceObjectUrl],\n },\n })\n )\n .then((a) => this.webex.internal.conversation.submit(a));\n },\n\n /**\n * Add a member to a team\n * @param {TeamObject} team\n * @param {Object} participant\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with activity that was posted\n */\n addMember(team, participant, activity) {\n return this._ensureGeneralConversation(team).then((generalConversation) =>\n this.webex.internal.conversation.add(generalConversation, participant, activity)\n );\n },\n\n /**\n * Create a team\n * @param {NewTeamObject} params\n * @param {string} params.displayName\n * @param {string} params.summary\n * @param {Array} params.participants\n * @returns {Promise} Resolves with the created team\n */\n create(params) {\n if (!params.displayName) {\n return Promise.reject(new Error('`params.displayName` is required'));\n }\n\n if (!params.participants || params.participants.length === 0) {\n return Promise.reject(new Error('`params.participants` is required'));\n }\n\n return Promise.all(\n params.participants.map((participant) =>\n this.webex.internal.user.asUUID(participant, {create: true})\n )\n )\n .then((participants) => {\n participants.unshift(this.webex.internal.device.userId);\n params.participants = uniq(participants);\n })\n .then(() => this._prepareTeam(params))\n .then((payload) =>\n this.webex.request({\n method: 'POST',\n service: 'conversation',\n resource: 'teams',\n body: payload,\n })\n )\n .then((res) => res.body);\n },\n\n /**\n * Create a conversation within a team. Currently does not support\n * activities besides add (ie no post or share activities).\n * @param {TeamObject} team\n * @param {NewConversationObject} params\n * @param {string} params.displayName\n * @param {string} params.summary\n * @param {Array} params.participants\n * @param {Object} options\n * @param {boolean} options.includeAllTeamMembers\n * @returns {Promise} Resolves with the newly created conversation\n */\n createConversation(team, params, options = {}) {\n if (!team.url) {\n return Promise.reject(new Error('`team.url` is required'));\n }\n\n if (!params.displayName) {\n return Promise.reject(new Error('`params.displayName` is required'));\n }\n\n return this._ensureGeneralConversation(team)\n .then((generalConversation) =>\n Promise.all(\n params.participants.map((participant) =>\n this.webex.internal.user.asUUID(participant, {create: true})\n )\n )\n .then((participants) => {\n participants.unshift(this.webex.internal.device.userId);\n params.participants = uniq(participants);\n })\n .then(() => this._prepareTeamConversation(generalConversation, params))\n )\n .then((payload) =>\n this.webex.request({\n method: 'POST',\n uri: `${team.url}/conversations`,\n qs: pick(options, 'includeAllTeamMembers'),\n body: payload,\n })\n )\n .then((res) => res.body);\n },\n\n /**\n * Retrieve a single team\n * @param {Object|Team~TeamObject} team\n * @param {string} team.url\n * @param {Object} options\n * @param {boolean} options.includeTeamConversations\n * @param {boolean} options.includeTeamMembers\n * @returns {Promise} Resolves with the requested team\n */\n get({url}, options = {}) {\n if (!url) {\n return Promise.reject(new Error('`team.url` is required'));\n }\n const params = {\n includeTeamConversations: false,\n includeTeamMembers: false,\n ...options,\n };\n\n return this.webex\n .request({\n uri: url,\n qs: params,\n })\n .then((res) => this._recordUUIDs(res.body).then(() => res.body));\n },\n\n /**\n * Get the list of conversations for a particular team\n * @param {TeamObject} team\n * @param {String} team.url\n * @returns {Promise} Resolves with an array of conversations\n */\n listConversations({url}) {\n if (!url) {\n return Promise.reject(new Error('`team.url` is required'));\n }\n\n return this.webex\n .request({\n uri: `${url}/conversations`,\n })\n .then((res) => res.body.items);\n },\n\n /**\n * Join a team conversation\n * @param {TeamObject} team\n * @param {ConversationObject} conversation\n * @param {userId} userId\n * @returns {Promise} Resolves with the conversation\n */\n joinConversation(team, conversation, userId) {\n if (!userId) {\n return Promise.reject(new Error('`userId` is required'));\n }\n\n const body = {\n kmsMessage: {\n client: {\n clientId: this.webex.internal.device.url,\n credential: {\n bearer: this.webex.credentials.supertoken.access_token,\n userId,\n },\n },\n method: 'create',\n requestId: uuid.v4(),\n resourceUri: conversation.kmsResourceObjectUrl,\n uri: '/authorizations',\n userIds: [userId],\n },\n };\n\n return this.webex\n .request({\n method: 'POST',\n uri: `${team.url}/conversations/${conversation.id}/participants`,\n body,\n })\n .then((res) => res.body);\n },\n\n /**\n * Retrieve all teams\n * @param {Object} options\n * @param {boolean} options.includeTeamConversations\n * @param {boolean} options.includeTeamMembers\n * @returns {Promise} Resolves with the requested teams\n */\n async list(options = {}) {\n const params = {\n includeTeamConversations: false,\n includeTeamMembers: false,\n ...options,\n };\n const resource = 'teams';\n\n const res = await this.webex.request({\n api: 'conversation',\n resource,\n qs: params,\n });\n\n let list = res.body.items.slice(0);\n\n if (res.body.additionalUrls) {\n const results = await Promise.all(\n res.body.additionalUrls.map((host) => {\n const uri = `${host}/${resource}`;\n\n return this.webex.request({\n uri,\n qs: params,\n });\n })\n );\n\n for (const result of results) {\n if (result.body && result.body.items && result.body.items.length) {\n list = list.concat(result.body.items);\n }\n }\n }\n\n await Promise.all(res.body.items.map((team) => this._recordUUIDs(team)));\n\n return list;\n },\n\n /**\n * Remove a member from a team\n * @param {TeamObject} team\n * @param {Object} participant\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with activity that was posted\n */\n removeMember(team, participant, activity) {\n return this._ensureGeneralConversation(team).then((generalConversation) =>\n this.webex.internal.conversation.leave(generalConversation, participant, activity)\n );\n },\n\n /**\n * Remove a team conversation from a team.\n * @param {TeamObject} team\n * @param {ConversationObject} conversation to be removed\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with the leave activity\n */\n removeConversation(team, conversation, activity) {\n return this._ensureGeneralConversation(team)\n .then((generalConversation) => {\n const properties = {\n verb: 'remove',\n object: pick(conversation, 'id', 'url', 'objectType'),\n target: pick(generalConversation, 'id', 'url', 'objectType'),\n kmsMessage: {\n method: 'delete',\n uri: `<KRO>/authorizations?${querystring.stringify({authId: conversation.id})}`,\n },\n };\n\n return this.webex.internal.conversation.prepare(activity, properties);\n })\n .then((a) => this.webex.internal.conversation.submit(a));\n },\n\n /**\n * Update the displayName, summary, or teamColor field for a team.\n * @param {TeamObject} team to be updated\n * @param {Object} object with updated displayName, summary, and/or teamColor\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with posted activity\n */\n update(team, object, activity) {\n return this.webex.internal.conversation.update(team, object, activity);\n },\n\n /* eslint-disable require-jsdoc */\n _ensureGeneralConversation(team) {\n if (!team.generalConversationUuid) {\n return Promise.reject(new Error('`team.generalConversationUuid` must be present'));\n }\n\n if (team.conversations.items.length) {\n const generalConversation = find(team.conversations.items, {\n id: team.generalConversationUuid,\n });\n\n if (generalConversation) {\n return Promise.resolve(generalConversation);\n }\n }\n\n return this.webex.internal.conversation.get({id: team.generalConversationUuid});\n },\n\n _prepareTeam: function _prepareTeam(params) {\n const payload = this.webex.internal.conversation._prepareConversationForCreation(params);\n\n payload.objectType = 'team';\n\n if (params.summary) {\n payload.summary = params.summary;\n }\n\n return Promise.resolve(payload);\n },\n\n _prepareTeamConversation(teamConversation, params) {\n if (!teamConversation.kmsResourceObjectUrl) {\n return Promise.reject(new Error('Team general conversation must have a KRO'));\n }\n\n const payload = this.webex.internal.conversation._prepareConversationForCreation(params);\n\n // Push the general conversation KRO on so that team members can\n // decrypt the title of this open room without joining it.\n payload.kmsMessage.userIds.push(teamConversation.kmsResourceObjectUrl);\n\n return Promise.resolve(payload);\n },\n\n _recordUUIDs(team) {\n if (!team.teamMembers || !team.teamMembers.items) {\n return Promise.resolve(team);\n }\n\n return Promise.all(\n team.teamMembers.items.map((participant) => {\n // ROOMs or LYRA_SPACEs do not have email addresses, so there's no point attempting to\n // record their UUIDs.\n if (participant.type === 'ROOM' || participant.type === 'LYRA_SPACE') {\n return Promise.resolve();\n }\n\n return this.webex.internal.user\n .recordUUID(participant)\n .catch((err) => this.logger.warn('Could not record uuid', err));\n })\n );\n },\n /* eslint-enable require-jsdoc */\n});\n\n/**\n * Assign or unassign a team member to be a moderator of a team\n * @param {TeamObject} team\n * @param {Object} participant\n * @param {Object} activity\n * @returns {Promise} Resolves with activity that was posted\n */\n['assignModerator', 'unassignModerator'].forEach((verb) => {\n Team.prototype[verb] = function submitModerationChangeActivity(team, member, activity) {\n return this._ensureGeneralConversation(team).then((teamConversation) =>\n this.webex.internal.conversation[verb](teamConversation, member, activity)\n );\n };\n});\n\n/**\n * Archive or unarchive a team or team conversation.\n * @param {TeamObject|ConversationObject} target team or team conversation that should be archived\n * @param {Object} activity Reference to the activity that will eventually be\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\n * provisional activity\n * @returns {Promise} Resolves with the posted activity\n */\n['archive', 'unarchive'].forEach((verb) => {\n Team.prototype[verb] = function submitArchiveStateChangeActivity(target, activity) {\n if (!target.objectType) {\n return Promise.reject(new Error('`target.objectType` is required'));\n }\n\n const properties = {\n verb,\n object: pick(target, 'id', 'url', 'objectType'),\n target: pick(target, 'id', 'url', 'objectType'),\n };\n\n const teamUrl = this.webex.internal.conversation.getConvoUrl(target);\n\n return this.webex.internal.conversation\n .prepare(activity, properties)\n .then((a) => this.webex.internal.conversation.submit(a, teamUrl));\n };\n});\n\nexport default Team;\n"],"mappings":"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"}
|