@webex/internal-plugin-team 3.0.0-beta.13 → 3.0.0-beta.15

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 CHANGED
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-team
21
21
  ## Usage
22
22
 
23
23
  ```js
24
-
25
24
  import '@webex/internal-plugin-team';
26
25
 
27
26
  import WebexCore from '@webex/webex-core';
28
27
 
29
28
  const webex = new WebexCore();
30
- webex.internal.team.WHATEVER
31
-
29
+ webex.internal.team.WHATEVER;
32
30
  ```
33
31
 
34
32
  ## Maintainers
@@ -1 +1 @@
1
- {"version":3,"names":["team"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n team: {}\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,IAAI,EAAE;AADO,C"}
1
+ {"version":3,"names":["team"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n team: {},\n};\n"],"mappings":";;;;;;;;;;AAAA;AACA;AACA;eAEe;EACbA,IAAI,EAAE;AADO,C"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerInternalPlugin","Team","payloadTransformer","predicates","name","direction","test","ctx","optionsOrResponse","resolve","extract","activity","object","transforms","fn","key","team","promises","conversations","items","push","all","map","item","transform","usableKey","encryptionKeyUrl","teamRoomStatus","keyUrl","activityEvent","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","k","kmsMessage","keyUris","includes","uri","defaultActivityEncryptionKeyUrl","teamMembers","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-user';\nimport '@webex/internal-plugin-encryption';\nimport {isArray, has, get} from 'lodash';\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Team from './team';\nimport config from './config';\n\nregisterInternalPlugin('team', Team, {\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(has(optionsOrResponse, 'activity.object.activityEvent') && get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus');\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.activity.object);\n }\n }\n ],\n transforms: [\n {\n name: 'decryptTeam',\n direction: 'inbound',\n fn(ctx, key, team) {\n const promises = [];\n\n if (team.conversations.items) {\n promises.push(Promise.all(team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))));\n }\n\n const usableKey = team.encryptionKeyUrl || key;\n\n if (usableKey) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, team));\n promises.push(ctx.transform('decryptPropSummary', usableKey, team));\n }\n\n return Promise.all(promises);\n }\n },\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n fn(ctx, teamRoomStatus) {\n const keyUrl = get(teamRoomStatus, 'activityEvent.encryptionKeyUrl');\n\n return ctx.transform('decryptObject', keyUrl, teamRoomStatus.activityEvent);\n }\n },\n {\n name: 'decryptPropSummary',\n direction: 'inbound',\n fn(ctx, key, team) {\n return ctx.transform('decryptTextProp', 'summary', key, team);\n }\n },\n {\n name: 'encryptTeam',\n direction: 'outbound',\n fn(ctx, key, team) {\n if (key === false) {\n return Promise.resolve();\n }\n\n return Promise.resolve(key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}))\n .then((keys) => {\n const k = isArray(keys) ? keys[0] : keys;\n\n if (team.kmsMessage && team.kmsMessage.keyUris && !team.kmsMessage.keyUris.includes(k.uri)) {\n team.kmsMessage.keyUris.push(k.uri);\n }\n\n return Promise.all([\n ctx.transform('encryptPropDisplayName', k, team),\n ctx.transform('encryptPropSummary', k, team)\n ])\n .then(() => {\n team.encryptionKeyUrl = k.uri || k;\n\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\n // bound a new key\n if (!key) {\n team.defaultActivityEncryptionKeyUrl = team.defaultActivityEncryptionKeyUrl || k.uri || k;\n }\n });\n });\n }\n },\n {\n name: 'encryptPropSummary',\n direction: 'outbound',\n fn(ctx, key, team) {\n return ctx.transform('encryptTextProp', 'summary', key, team);\n }\n },\n {\n name: 'normalizeTeam',\n fn(ctx, team) {\n team.conversations = team.conversations || {};\n team.conversations.items = team.conversations.items || [];\n team.teamMembers = team.teamMembers || {};\n team.teamMembers.items = team.teamMembers.items || [];\n\n return Promise.all([\n Promise.all(team.conversations.items.map((item) => ctx.transform('normalizeObject', item))),\n Promise.all(team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item)))\n ]);\n }\n }\n ]\n },\n config\n});\n\nexport {default} from './team';\n"],"mappings":"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"}
1
+ {"version":3,"names":["registerInternalPlugin","Team","payloadTransformer","predicates","name","direction","test","ctx","optionsOrResponse","resolve","extract","activity","object","transforms","fn","key","team","promises","conversations","items","push","all","map","item","transform","usableKey","encryptionKeyUrl","teamRoomStatus","keyUrl","activityEvent","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","k","kmsMessage","keyUris","includes","uri","defaultActivityEncryptionKeyUrl","teamMembers","config"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-user';\nimport '@webex/internal-plugin-encryption';\nimport {isArray, has, get} from 'lodash';\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport Team from './team';\nimport config from './config';\n\nregisterInternalPlugin('team', Team, {\n payloadTransformer: {\n predicates: [\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n test(ctx, optionsOrResponse) {\n return Promise.resolve(\n has(optionsOrResponse, 'activity.object.activityEvent') &&\n get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus'\n );\n },\n extract(optionsOrResponse) {\n return Promise.resolve(optionsOrResponse.activity.object);\n },\n },\n ],\n transforms: [\n {\n name: 'decryptTeam',\n direction: 'inbound',\n fn(ctx, key, team) {\n const promises = [];\n\n if (team.conversations.items) {\n promises.push(\n Promise.all(\n team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))\n )\n );\n }\n\n const usableKey = team.encryptionKeyUrl || key;\n\n if (usableKey) {\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, team));\n promises.push(ctx.transform('decryptPropSummary', usableKey, team));\n }\n\n return Promise.all(promises);\n },\n },\n {\n name: 'decryptTeamRoomStatus',\n direction: 'inbound',\n fn(ctx, teamRoomStatus) {\n const keyUrl = get(teamRoomStatus, 'activityEvent.encryptionKeyUrl');\n\n return ctx.transform('decryptObject', keyUrl, teamRoomStatus.activityEvent);\n },\n },\n {\n name: 'decryptPropSummary',\n direction: 'inbound',\n fn(ctx, key, team) {\n return ctx.transform('decryptTextProp', 'summary', key, team);\n },\n },\n {\n name: 'encryptTeam',\n direction: 'outbound',\n fn(ctx, key, team) {\n if (key === false) {\n return Promise.resolve();\n }\n\n return Promise.resolve(\n key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\n ).then((keys) => {\n const k = isArray(keys) ? keys[0] : keys;\n\n if (\n team.kmsMessage &&\n team.kmsMessage.keyUris &&\n !team.kmsMessage.keyUris.includes(k.uri)\n ) {\n team.kmsMessage.keyUris.push(k.uri);\n }\n\n return Promise.all([\n ctx.transform('encryptPropDisplayName', k, team),\n ctx.transform('encryptPropSummary', k, team),\n ]).then(() => {\n team.encryptionKeyUrl = k.uri || k;\n\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\n // bound a new key\n if (!key) {\n team.defaultActivityEncryptionKeyUrl =\n team.defaultActivityEncryptionKeyUrl || k.uri || k;\n }\n });\n });\n },\n },\n {\n name: 'encryptPropSummary',\n direction: 'outbound',\n fn(ctx, key, team) {\n return ctx.transform('encryptTextProp', 'summary', key, team);\n },\n },\n {\n name: 'normalizeTeam',\n fn(ctx, team) {\n team.conversations = team.conversations || {};\n team.conversations.items = team.conversations.items || [];\n team.teamMembers = team.teamMembers || {};\n team.teamMembers.items = team.teamMembers.items || [];\n\n return Promise.all([\n Promise.all(\n team.conversations.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n Promise.all(\n team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item))\n ),\n ]);\n },\n },\n ],\n },\n config,\n});\n\nexport {default} from './team';\n"],"mappings":"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"}
package/dist/team.js CHANGED
@@ -1,5 +1,17 @@
1
1
  "use strict";
2
2
 
3
+ var _Object$keys = require("@babel/runtime-corejs2/core-js/object/keys");
4
+
5
+ var _Object$getOwnPropertySymbols = require("@babel/runtime-corejs2/core-js/object/get-own-property-symbols");
6
+
7
+ var _Object$getOwnPropertyDescriptor = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptor");
8
+
9
+ var _Object$getOwnPropertyDescriptors = require("@babel/runtime-corejs2/core-js/object/get-own-property-descriptors");
10
+
11
+ var _Object$defineProperties = require("@babel/runtime-corejs2/core-js/object/define-properties");
12
+
13
+ var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
14
+
3
15
  var _Array$from = require("@babel/runtime-corejs2/core-js/array/from");
4
16
 
5
17
  var _Symbol = require("@babel/runtime-corejs2/core-js/symbol");
@@ -8,8 +20,6 @@ var _Symbol$iterator = require("@babel/runtime-corejs2/core-js/symbol/iterator")
8
20
 
9
21
  var _Array$isArray = require("@babel/runtime-corejs2/core-js/array/is-array");
10
22
 
11
- var _Object$defineProperty = require("@babel/runtime-corejs2/core-js/object/define-property");
12
-
13
23
  var _interopRequireDefault = require("@babel/runtime-corejs2/helpers/interopRequireDefault");
14
24
 
15
25
  _Object$defineProperty(exports, "__esModule", {
@@ -22,10 +32,10 @@ var _regenerator = _interopRequireDefault(require("@babel/runtime-corejs2/regene
22
32
 
23
33
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
24
34
 
25
- var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
26
-
27
35
  var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/asyncToGenerator"));
28
36
 
37
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
38
+
29
39
  var _uniq2 = _interopRequireDefault(require("lodash/uniq"));
30
40
 
31
41
  var _pick2 = _interopRequireDefault(require("lodash/pick"));
@@ -34,6 +44,8 @@ var _find2 = _interopRequireDefault(require("lodash/find"));
34
44
 
35
45
  var _querystring = _interopRequireDefault(require("querystring"));
36
46
 
47
+ var _uuid = _interopRequireDefault(require("uuid"));
48
+
37
49
  var _webexCore = require("@webex/webex-core");
38
50
 
39
51
  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; } } }; }
@@ -42,6 +54,10 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
42
54
 
43
55
  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; }
44
56
 
57
+ 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; }
58
+
59
+ 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; }
60
+
45
61
  var Team = _webexCore.WebexPlugin.extend({
46
62
  namespace: 'Team',
47
63
 
@@ -201,10 +217,11 @@ var Team = _webexCore.WebexPlugin.extend({
201
217
  return _promise.default.reject(new Error('`team.url` is required'));
202
218
  }
203
219
 
204
- var params = (0, _assign.default)({
220
+ var params = _objectSpread({
205
221
  includeTeamConversations: false,
206
222
  includeTeamMembers: false
207
223
  }, options);
224
+
208
225
  return this.webex.request({
209
226
  uri: url,
210
227
  qs: params
@@ -239,12 +256,34 @@ var Team = _webexCore.WebexPlugin.extend({
239
256
  * Join a team conversation
240
257
  * @param {TeamObject} team
241
258
  * @param {ConversationObject} conversation
259
+ * @param {userId} userId
242
260
  * @returns {Promise} Resolves with the conversation
243
261
  */
244
- joinConversation: function joinConversation(team, conversation) {
262
+ joinConversation: function joinConversation(team, conversation, userId) {
263
+ if (!userId) {
264
+ return _promise.default.reject(new Error('`userId` is required'));
265
+ }
266
+
267
+ var body = {
268
+ kmsMessage: {
269
+ client: {
270
+ clientId: this.webex.internal.device.url,
271
+ credential: {
272
+ bearer: this.webex.credentials.supertoken.access_token,
273
+ userId: userId
274
+ }
275
+ },
276
+ method: 'create',
277
+ requestId: _uuid.default.v4(),
278
+ resourceUri: conversation.kmsResourceObjectUrl,
279
+ uri: '/authorizations',
280
+ userIds: [userId]
281
+ }
282
+ };
245
283
  return this.webex.request({
246
284
  method: 'POST',
247
- uri: "".concat(team.url, "/conversations/").concat(conversation.id, "/participants")
285
+ uri: "".concat(team.url, "/conversations/").concat(conversation.id, "/participants"),
286
+ body: body
248
287
  }).then(function (res) {
249
288
  return res.body;
250
289
  });
@@ -269,7 +308,7 @@ var Team = _webexCore.WebexPlugin.extend({
269
308
  switch (_context.prev = _context.next) {
270
309
  case 0:
271
310
  options = _arguments.length > 0 && _arguments[0] !== undefined ? _arguments[0] : {};
272
- params = (0, _assign.default)({
311
+ params = _objectSpread({
273
312
  includeTeamConversations: false,
274
313
  includeTeamMembers: false
275
314
  }, options);
@@ -459,7 +498,7 @@ var Team = _webexCore.WebexPlugin.extend({
459
498
  }
460
499
  /* eslint-enable require-jsdoc */
461
500
  ,
462
- version: "3.0.0-beta.13"
501
+ version: "3.0.0-beta.15"
463
502
  });
464
503
  /**
465
504
  * Assign or unassign a team member to be a moderator of a team
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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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-team",
3
- "version": "3.0.0-beta.13",
3
+ "version": "3.0.0-beta.15",
4
4
  "description": "",
5
5
  "license": "MIT",
6
6
  "author": "Josh Dykstra <jodykstr@cisco.com>",
@@ -21,19 +21,19 @@
21
21
  ]
22
22
  },
23
23
  "devDependencies": {
24
- "@webex/test-helper-chai": "3.0.0-beta.13",
25
- "@webex/test-helper-mocha": "3.0.0-beta.13",
26
- "@webex/test-helper-mock-webex": "3.0.0-beta.13",
27
- "@webex/test-helper-test-users": "3.0.0-beta.13",
24
+ "@webex/test-helper-chai": "3.0.0-beta.15",
25
+ "@webex/test-helper-mocha": "3.0.0-beta.15",
26
+ "@webex/test-helper-mock-webex": "3.0.0-beta.15",
27
+ "@webex/test-helper-test-users": "3.0.0-beta.15",
28
28
  "sinon": "^9.2.4"
29
29
  },
30
30
  "dependencies": {
31
- "@webex/internal-plugin-conversation": "3.0.0-beta.13",
32
- "@webex/internal-plugin-device": "3.0.0-beta.13",
33
- "@webex/internal-plugin-encryption": "3.0.0-beta.13",
34
- "@webex/internal-plugin-team": "3.0.0-beta.13",
35
- "@webex/internal-plugin-user": "3.0.0-beta.13",
36
- "@webex/webex-core": "3.0.0-beta.13",
31
+ "@webex/internal-plugin-conversation": "3.0.0-beta.15",
32
+ "@webex/internal-plugin-device": "3.0.0-beta.15",
33
+ "@webex/internal-plugin-encryption": "3.0.0-beta.15",
34
+ "@webex/internal-plugin-team": "3.0.0-beta.15",
35
+ "@webex/internal-plugin-user": "3.0.0-beta.15",
36
+ "@webex/webex-core": "3.0.0-beta.15",
37
37
  "lodash": "^4.17.21",
38
38
  "uuid": "^3.3.2"
39
39
  }
package/src/config.js CHANGED
@@ -3,5 +3,5 @@
3
3
  */
4
4
 
5
5
  export default {
6
- team: {}
6
+ team: {},
7
7
  };
package/src/index.js CHANGED
@@ -18,12 +18,15 @@ registerInternalPlugin('team', Team, {
18
18
  name: 'decryptTeamRoomStatus',
19
19
  direction: 'inbound',
20
20
  test(ctx, optionsOrResponse) {
21
- return Promise.resolve(has(optionsOrResponse, 'activity.object.activityEvent') && get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus');
21
+ return Promise.resolve(
22
+ has(optionsOrResponse, 'activity.object.activityEvent') &&
23
+ get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus'
24
+ );
22
25
  },
23
26
  extract(optionsOrResponse) {
24
27
  return Promise.resolve(optionsOrResponse.activity.object);
25
- }
26
- }
28
+ },
29
+ },
27
30
  ],
28
31
  transforms: [
29
32
  {
@@ -33,7 +36,11 @@ registerInternalPlugin('team', Team, {
33
36
  const promises = [];
34
37
 
35
38
  if (team.conversations.items) {
36
- promises.push(Promise.all(team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))));
39
+ promises.push(
40
+ Promise.all(
41
+ team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))
42
+ )
43
+ );
37
44
  }
38
45
 
39
46
  const usableKey = team.encryptionKeyUrl || key;
@@ -44,7 +51,7 @@ registerInternalPlugin('team', Team, {
44
51
  }
45
52
 
46
53
  return Promise.all(promises);
47
- }
54
+ },
48
55
  },
49
56
  {
50
57
  name: 'decryptTeamRoomStatus',
@@ -53,14 +60,14 @@ registerInternalPlugin('team', Team, {
53
60
  const keyUrl = get(teamRoomStatus, 'activityEvent.encryptionKeyUrl');
54
61
 
55
62
  return ctx.transform('decryptObject', keyUrl, teamRoomStatus.activityEvent);
56
- }
63
+ },
57
64
  },
58
65
  {
59
66
  name: 'decryptPropSummary',
60
67
  direction: 'inbound',
61
68
  fn(ctx, key, team) {
62
69
  return ctx.transform('decryptTextProp', 'summary', key, team);
63
- }
70
+ },
64
71
  },
65
72
  {
66
73
  name: 'encryptTeam',
@@ -70,36 +77,41 @@ registerInternalPlugin('team', Team, {
70
77
  return Promise.resolve();
71
78
  }
72
79
 
73
- return Promise.resolve(key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}))
74
- .then((keys) => {
75
- const k = isArray(keys) ? keys[0] : keys;
80
+ return Promise.resolve(
81
+ key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})
82
+ ).then((keys) => {
83
+ const k = isArray(keys) ? keys[0] : keys;
76
84
 
77
- if (team.kmsMessage && team.kmsMessage.keyUris && !team.kmsMessage.keyUris.includes(k.uri)) {
78
- team.kmsMessage.keyUris.push(k.uri);
79
- }
85
+ if (
86
+ team.kmsMessage &&
87
+ team.kmsMessage.keyUris &&
88
+ !team.kmsMessage.keyUris.includes(k.uri)
89
+ ) {
90
+ team.kmsMessage.keyUris.push(k.uri);
91
+ }
80
92
 
81
- return Promise.all([
82
- ctx.transform('encryptPropDisplayName', k, team),
83
- ctx.transform('encryptPropSummary', k, team)
84
- ])
85
- .then(() => {
86
- team.encryptionKeyUrl = k.uri || k;
93
+ return Promise.all([
94
+ ctx.transform('encryptPropDisplayName', k, team),
95
+ ctx.transform('encryptPropSummary', k, team),
96
+ ]).then(() => {
97
+ team.encryptionKeyUrl = k.uri || k;
87
98
 
88
- // we only want to set the defaultActivityEncryptionKeyUrl if we've
89
- // bound a new key
90
- if (!key) {
91
- team.defaultActivityEncryptionKeyUrl = team.defaultActivityEncryptionKeyUrl || k.uri || k;
92
- }
93
- });
99
+ // we only want to set the defaultActivityEncryptionKeyUrl if we've
100
+ // bound a new key
101
+ if (!key) {
102
+ team.defaultActivityEncryptionKeyUrl =
103
+ team.defaultActivityEncryptionKeyUrl || k.uri || k;
104
+ }
94
105
  });
95
- }
106
+ });
107
+ },
96
108
  },
97
109
  {
98
110
  name: 'encryptPropSummary',
99
111
  direction: 'outbound',
100
112
  fn(ctx, key, team) {
101
113
  return ctx.transform('encryptTextProp', 'summary', key, team);
102
- }
114
+ },
103
115
  },
104
116
  {
105
117
  name: 'normalizeTeam',
@@ -110,14 +122,18 @@ registerInternalPlugin('team', Team, {
110
122
  team.teamMembers.items = team.teamMembers.items || [];
111
123
 
112
124
  return Promise.all([
113
- Promise.all(team.conversations.items.map((item) => ctx.transform('normalizeObject', item))),
114
- Promise.all(team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item)))
125
+ Promise.all(
126
+ team.conversations.items.map((item) => ctx.transform('normalizeObject', item))
127
+ ),
128
+ Promise.all(
129
+ team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item))
130
+ ),
115
131
  ]);
116
- }
117
- }
118
- ]
132
+ },
133
+ },
134
+ ],
119
135
  },
120
- config
136
+ config,
121
137
  });
122
138
 
123
139
  export {default} from './team';