@webex/internal-plugin-team 2.59.1 → 2.59.3-next.1
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/.eslintrc.js +6 -6
- package/README.md +42 -42
- package/babel.config.js +3 -3
- package/dist/config.js +2 -2
- package/dist/config.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/team.js +97 -97
- package/dist/team.js.map +1 -1
- package/jest.config.js +3 -3
- package/package.json +17 -16
- package/process +1 -1
- package/src/config.js +7 -7
- package/src/index.js +139 -139
- package/src/team.js +437 -437
- package/test/integration/spec/actions.js +560 -560
- package/test/integration/spec/create.js +158 -158
- package/test/integration/spec/get.js +198 -198
- package/test/integration/spec/mercury.js +108 -108
- package/test/unit/spec/team.js +153 -153
package/.eslintrc.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
const config = {
|
|
2
|
-
root: true,
|
|
3
|
-
extends: ['@webex/eslint-config-legacy'],
|
|
4
|
-
};
|
|
5
|
-
|
|
6
|
-
module.exports = config;
|
|
1
|
+
const config = {
|
|
2
|
+
root: true,
|
|
3
|
+
extends: ['@webex/eslint-config-legacy'],
|
|
4
|
+
};
|
|
5
|
+
|
|
6
|
+
module.exports = config;
|
package/README.md
CHANGED
|
@@ -1,42 +1,42 @@
|
|
|
1
|
-
# @webex/internal-plugin-team
|
|
2
|
-
|
|
3
|
-
[](https://github.com/RichardLitt/standard-readme)
|
|
4
|
-
|
|
5
|
-
> Plugin for the Team service
|
|
6
|
-
|
|
7
|
-
This is an internal Cisco Webex plugin. As such, it does not strictly adhere to semantic versioning. Use at your own risk. If you're not working on one of our first party clients, please look at our [developer api](https://developer.webex.com/) and stick to our public plugins.
|
|
8
|
-
|
|
9
|
-
- [Install](#install)
|
|
10
|
-
- [Usage](#usage)
|
|
11
|
-
- [Contribute](#contribute)
|
|
12
|
-
- [Maintainers](#maintainers)
|
|
13
|
-
- [License](#license)
|
|
14
|
-
|
|
15
|
-
## Install
|
|
16
|
-
|
|
17
|
-
```bash
|
|
18
|
-
npm install --save @webex/internal-plugin-team
|
|
19
|
-
```
|
|
20
|
-
|
|
21
|
-
## Usage
|
|
22
|
-
|
|
23
|
-
```js
|
|
24
|
-
import '@webex/internal-plugin-team';
|
|
25
|
-
|
|
26
|
-
import WebexCore from '@webex/webex-core';
|
|
27
|
-
|
|
28
|
-
const webex = new WebexCore();
|
|
29
|
-
webex.internal.team.WHATEVER;
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
## Maintainers
|
|
33
|
-
|
|
34
|
-
This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
|
|
35
|
-
|
|
36
|
-
## Contribute
|
|
37
|
-
|
|
38
|
-
Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
|
|
39
|
-
|
|
40
|
-
## License
|
|
41
|
-
|
|
42
|
-
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
|
|
1
|
+
# @webex/internal-plugin-team
|
|
2
|
+
|
|
3
|
+
[](https://github.com/RichardLitt/standard-readme)
|
|
4
|
+
|
|
5
|
+
> Plugin for the Team service
|
|
6
|
+
|
|
7
|
+
This is an internal Cisco Webex plugin. As such, it does not strictly adhere to semantic versioning. Use at your own risk. If you're not working on one of our first party clients, please look at our [developer api](https://developer.webex.com/) and stick to our public plugins.
|
|
8
|
+
|
|
9
|
+
- [Install](#install)
|
|
10
|
+
- [Usage](#usage)
|
|
11
|
+
- [Contribute](#contribute)
|
|
12
|
+
- [Maintainers](#maintainers)
|
|
13
|
+
- [License](#license)
|
|
14
|
+
|
|
15
|
+
## Install
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install --save @webex/internal-plugin-team
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
## Usage
|
|
22
|
+
|
|
23
|
+
```js
|
|
24
|
+
import '@webex/internal-plugin-team';
|
|
25
|
+
|
|
26
|
+
import WebexCore from '@webex/webex-core';
|
|
27
|
+
|
|
28
|
+
const webex = new WebexCore();
|
|
29
|
+
webex.internal.team.WHATEVER;
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Maintainers
|
|
33
|
+
|
|
34
|
+
This package is maintained by [Cisco Webex for Developers](https://developer.webex.com/).
|
|
35
|
+
|
|
36
|
+
## Contribute
|
|
37
|
+
|
|
38
|
+
Pull requests welcome. Please see [CONTRIBUTING.md](https://github.com/webex/webex-js-sdk/blob/master/CONTRIBUTING.md) for more details.
|
|
39
|
+
|
|
40
|
+
## License
|
|
41
|
+
|
|
42
|
+
© 2016-2020 Cisco and/or its affiliates. All Rights Reserved.
|
package/babel.config.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
const babelConfigLegacy = require('@webex/babel-config-legacy');
|
|
2
|
-
|
|
3
|
-
module.exports = babelConfigLegacy;
|
|
1
|
+
const babelConfigLegacy = require('@webex/babel-config-legacy');
|
|
2
|
+
|
|
3
|
+
module.exports = babelConfigLegacy;
|
package/dist/config.js
CHANGED
|
@@ -5,8 +5,8 @@ _Object$defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
/*!
|
|
9
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
8
|
+
/*!
|
|
9
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
10
10
|
*/
|
|
11
11
|
var _default = {
|
|
12
12
|
team: {}
|
package/dist/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_default","team","exports","default"],"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;AAFA,IAAAA,QAAA,GAIe;EACbC,IAAI,EAAE,CAAC;AACT,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
|
|
1
|
+
{"version":3,"names":["_default","team","exports","default"],"sources":["config.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nexport default {\r\n team: {},\r\n};\r\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAIe;EACbC,IAAI,EAAE,CAAC;AACT,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
|
package/dist/index.js
CHANGED
|
@@ -21,8 +21,8 @@ require("@webex/internal-plugin-encryption");
|
|
|
21
21
|
var _webexCore = require("@webex/webex-core");
|
|
22
22
|
var _team = _interopRequireDefault(require("./team"));
|
|
23
23
|
var _config = _interopRequireDefault(require("./config"));
|
|
24
|
-
/*!
|
|
25
|
-
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
24
|
+
/*!
|
|
25
|
+
* Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
|
|
26
26
|
*/
|
|
27
27
|
|
|
28
28
|
(0, _webexCore.registerInternalPlugin)('team', _team.default, {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["require","_webexCore","_team","_interopRequireDefault","_config","registerInternalPlugin","Team","payloadTransformer","predicates","name","direction","test","ctx","optionsOrResponse","_promise","default","resolve","_has2","_get2","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","_isArray2","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":";;;;;;;;;;;;;;;;;AAIAA,OAAA;AACAA,OAAA;AACAA,OAAA;AAEA,IAAAC,UAAA,GAAAD,OAAA;AAEA,IAAAE,KAAA,GAAAC,sBAAA,CAAAH,OAAA;AACA,IAAAI,OAAA,GAAAD,sBAAA,CAAAH,OAAA;AAXA;AACA;AACA;;AAWA,IAAAK,iCAAsB,EAAC,MAAM,EAAEC,aAAI,EAAE;EACnCC,kBAAkB,EAAE;IAClBC,UAAU,EAAE,CACV;MACEC,IAAI,EAAE,uBAAuB;MAC7BC,SAAS,EAAE,SAAS;MACpBC,IAAI,WAAAA,KAACC,GAAG,EAAEC,iBAAiB,EAAE;QAC3B,OAAOC,QAAA,CAAAC,OAAA,CAAQC,OAAO,CACpB,IAAAC,KAAA,CAAAF,OAAA,EAAIF,iBAAiB,EAAE,+BAA+B,CAAC,IACrD,IAAAK,KAAA,CAAAH,OAAA,EAAIF,iBAAiB,EAAE,4BAA4B,CAAC,KAAK,gBAAgB,CAC5E;MACH,CAAC;MACDM,OAAO,WAAAA,QAACN,iBAAiB,EAAE;QACzB,OAAOC,QAAA,CAAAC,OAAA,CAAQC,OAAO,CAACH,iBAAiB,CAACO,QAAQ,CAACC,MAAM,CAAC;MAC3D;IACF,CAAC,CACF;IACDC,UAAU,EAAE,CACV;MACEb,IAAI,EAAE,aAAa;MACnBC,SAAS,EAAE,SAAS;MACpBa,EAAE,WAAAA,GAACX,GAAG,EAAEY,GAAG,EAAEC,IAAI,EAAE;QACjB,IAAMC,QAAQ,GAAG,EAAE;QAEnB,IAAID,IAAI,CAACE,aAAa,CAACC,KAAK,EAAE;UAC5BF,QAAQ,CAACG,IAAI,CACXf,QAAA,CAAAC,OAAA,CAAQe,GAAG,CACTL,IAAI,CAACE,aAAa,CAACC,KAAK,CAACG,GAAG,CAAC,UAACC,IAAI;YAAA,OAAKpB,GAAG,CAACqB,SAAS,CAAC,eAAe,EAAE,IAAI,EAAED,IAAI,CAAC;UAAA,EAAC,CACnF,CACF;QACH;QAEA,IAAME,SAAS,GAAGT,IAAI,CAACU,gBAAgB,IAAIX,GAAG;QAE9C,IAAIU,SAAS,EAAE;UACbR,QAAQ,CAACG,IAAI,CAACjB,GAAG,CAACqB,SAAS,CAAC,wBAAwB,EAAEC,SAAS,EAAET,IAAI,CAAC,CAAC;UACvEC,QAAQ,CAACG,IAAI,CAACjB,GAAG,CAACqB,SAAS,CAAC,oBAAoB,EAAEC,SAAS,EAAET,IAAI,CAAC,CAAC;QACrE;QAEA,OAAOX,QAAA,CAAAC,OAAA,CAAQe,GAAG,CAACJ,QAAQ,CAAC;MAC9B;IACF,CAAC,EACD;MACEjB,IAAI,EAAE,uBAAuB;MAC7BC,SAAS,EAAE,SAAS;MACpBa,EAAE,WAAAA,GAACX,GAAG,EAAEwB,cAAc,EAAE;QACtB,IAAMC,MAAM,GAAG,IAAAnB,KAAA,CAAAH,OAAA,EAAIqB,cAAc,EAAE,gCAAgC,CAAC;QAEpE,OAAOxB,GAAG,CAACqB,SAAS,CAAC,eAAe,EAAEI,MAAM,EAAED,cAAc,CAACE,aAAa,CAAC;MAC7E;IACF,CAAC,EACD;MACE7B,IAAI,EAAE,oBAAoB;MAC1BC,SAAS,EAAE,SAAS;MACpBa,EAAE,WAAAA,GAACX,GAAG,EAAEY,GAAG,EAAEC,IAAI,EAAE;QACjB,OAAOb,GAAG,CAACqB,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAET,GAAG,EAAEC,IAAI,CAAC;MAC/D;IACF,CAAC,EACD;MACEhB,IAAI,EAAE,aAAa;MACnBC,SAAS,EAAE,UAAU;MACrBa,EAAE,WAAAA,GAACX,GAAG,EAAEY,GAAG,EAAEC,IAAI,EAAE;QACjB,IAAID,GAAG,KAAK,KAAK,EAAE;UACjB,OAAOV,QAAA,CAAAC,OAAA,CAAQC,OAAO,EAAE;QAC1B;QAEA,OAAOF,QAAA,CAAAC,OAAA,CAAQC,OAAO,CACpBQ,GAAG,IAAIZ,GAAG,CAAC2B,KAAK,CAACC,QAAQ,CAACC,UAAU,CAACC,GAAG,CAACC,iBAAiB,CAAC;UAACC,KAAK,EAAE;QAAC,CAAC,CAAC,CACvE,CAACC,IAAI,CAAC,UAACC,IAAI,EAAK;UACf,IAAMC,CAAC,GAAG,IAAAC,SAAA,CAAAjC,OAAA,EAAQ+B,IAAI,CAAC,GAAGA,IAAI,CAAC,CAAC,CAAC,GAAGA,IAAI;UAExC,IACErB,IAAI,CAACwB,UAAU,IACfxB,IAAI,CAACwB,UAAU,CAACC,OAAO,IACvB,CAACzB,IAAI,CAACwB,UAAU,CAACC,OAAO,CAACC,QAAQ,CAACJ,CAAC,CAACK,GAAG,CAAC,EACxC;YACA3B,IAAI,CAACwB,UAAU,CAACC,OAAO,CAACrB,IAAI,CAACkB,CAAC,CAACK,GAAG,CAAC;UACrC;UAEA,OAAOtC,QAAA,CAAAC,OAAA,CAAQe,GAAG,CAAC,CACjBlB,GAAG,CAACqB,SAAS,CAAC,wBAAwB,EAAEc,CAAC,EAAEtB,IAAI,CAAC,EAChDb,GAAG,CAACqB,SAAS,CAAC,oBAAoB,EAAEc,CAAC,EAAEtB,IAAI,CAAC,CAC7C,CAAC,CAACoB,IAAI,CAAC,YAAM;YACZpB,IAAI,CAACU,gBAAgB,GAAGY,CAAC,CAACK,GAAG,IAAIL,CAAC;;YAElC;YACA;YACA,IAAI,CAACvB,GAAG,EAAE;cACRC,IAAI,CAAC4B,+BAA+B,GAClC5B,IAAI,CAAC4B,+BAA+B,IAAIN,CAAC,CAACK,GAAG,IAAIL,CAAC;YACtD;UACF,CAAC,CAAC;QACJ,CAAC,CAAC;MACJ;IACF,CAAC,EACD;MACEtC,IAAI,EAAE,oBAAoB;MAC1BC,SAAS,EAAE,UAAU;MACrBa,EAAE,WAAAA,GAACX,GAAG,EAAEY,GAAG,EAAEC,IAAI,EAAE;QACjB,OAAOb,GAAG,CAACqB,SAAS,CAAC,iBAAiB,EAAE,SAAS,EAAET,GAAG,EAAEC,IAAI,CAAC;MAC/D;IACF,CAAC,EACD;MACEhB,IAAI,EAAE,eAAe;MACrBc,EAAE,WAAAA,GAACX,GAAG,EAAEa,IAAI,EAAE;QACZA,IAAI,CAACE,aAAa,GAAGF,IAAI,CAACE,aAAa,IAAI,CAAC,CAAC;QAC7CF,IAAI,CAACE,aAAa,CAACC,KAAK,GAAGH,IAAI,CAACE,aAAa,CAACC,KAAK,IAAI,EAAE;QACzDH,IAAI,CAAC6B,WAAW,GAAG7B,IAAI,CAAC6B,WAAW,IAAI,CAAC,CAAC;QACzC7B,IAAI,CAAC6B,WAAW,CAAC1B,KAAK,GAAGH,IAAI,CAAC6B,WAAW,CAAC1B,KAAK,IAAI,EAAE;QAErD,OAAOd,QAAA,CAAAC,OAAA,CAAQe,GAAG,CAAC,CACjBhB,QAAA,CAAAC,OAAA,CAAQe,GAAG,CACTL,IAAI,CAACE,aAAa,CAACC,KAAK,CAACG,GAAG,CAAC,UAACC,IAAI;UAAA,OAAKpB,GAAG,CAACqB,SAAS,CAAC,iBAAiB,EAAED,IAAI,CAAC;QAAA,EAAC,CAC/E,EACDlB,QAAA,CAAAC,OAAA,CAAQe,GAAG,CACTL,IAAI,CAAC6B,WAAW,CAAC1B,KAAK,CAACG,GAAG,CAAC,UAACC,IAAI;UAAA,OAAKpB,GAAG,CAACqB,SAAS,CAAC,iBAAiB,EAAED,IAAI,CAAC;QAAA,EAAC,CAC7E,CACF,CAAC;MACJ;IACF,CAAC;EAEL,CAAC;EACDuB,MAAM,EAANA;AACF,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"names":["require","_webexCore","_team","_interopRequireDefault","_config","registerInternalPlugin","Team","payloadTransformer","predicates","name","direction","test","ctx","optionsOrResponse","_promise","default","resolve","_has2","_get2","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","_isArray2","kmsMessage","keyUris","includes","uri","defaultActivityEncryptionKeyUrl","teamMembers","config"],"sources":["index.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport '@webex/internal-plugin-conversation';\r\nimport '@webex/internal-plugin-user';\r\nimport '@webex/internal-plugin-encryption';\r\nimport {isArray, has, get} from 'lodash';\r\nimport {registerInternalPlugin} from '@webex/webex-core';\r\n\r\nimport Team from './team';\r\nimport config from './config';\r\n\r\nregisterInternalPlugin('team', Team, {\r\n payloadTransformer: {\r\n predicates: [\r\n {\r\n name: 'decryptTeamRoomStatus',\r\n direction: 'inbound',\r\n test(ctx, optionsOrResponse) {\r\n return Promise.resolve(\r\n has(optionsOrResponse, 'activity.object.activityEvent') &&\r\n get(optionsOrResponse, 'activity.object.objectType') === 'teamRoomStatus'\r\n );\r\n },\r\n extract(optionsOrResponse) {\r\n return Promise.resolve(optionsOrResponse.activity.object);\r\n },\r\n },\r\n ],\r\n transforms: [\r\n {\r\n name: 'decryptTeam',\r\n direction: 'inbound',\r\n fn(ctx, key, team) {\r\n const promises = [];\r\n\r\n if (team.conversations.items) {\r\n promises.push(\r\n Promise.all(\r\n team.conversations.items.map((item) => ctx.transform('decryptObject', null, item))\r\n )\r\n );\r\n }\r\n\r\n const usableKey = team.encryptionKeyUrl || key;\r\n\r\n if (usableKey) {\r\n promises.push(ctx.transform('decryptPropDisplayName', usableKey, team));\r\n promises.push(ctx.transform('decryptPropSummary', usableKey, team));\r\n }\r\n\r\n return Promise.all(promises);\r\n },\r\n },\r\n {\r\n name: 'decryptTeamRoomStatus',\r\n direction: 'inbound',\r\n fn(ctx, teamRoomStatus) {\r\n const keyUrl = get(teamRoomStatus, 'activityEvent.encryptionKeyUrl');\r\n\r\n return ctx.transform('decryptObject', keyUrl, teamRoomStatus.activityEvent);\r\n },\r\n },\r\n {\r\n name: 'decryptPropSummary',\r\n direction: 'inbound',\r\n fn(ctx, key, team) {\r\n return ctx.transform('decryptTextProp', 'summary', key, team);\r\n },\r\n },\r\n {\r\n name: 'encryptTeam',\r\n direction: 'outbound',\r\n fn(ctx, key, team) {\r\n if (key === false) {\r\n return Promise.resolve();\r\n }\r\n\r\n return Promise.resolve(\r\n key || ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1})\r\n ).then((keys) => {\r\n const k = isArray(keys) ? keys[0] : keys;\r\n\r\n if (\r\n team.kmsMessage &&\r\n team.kmsMessage.keyUris &&\r\n !team.kmsMessage.keyUris.includes(k.uri)\r\n ) {\r\n team.kmsMessage.keyUris.push(k.uri);\r\n }\r\n\r\n return Promise.all([\r\n ctx.transform('encryptPropDisplayName', k, team),\r\n ctx.transform('encryptPropSummary', k, team),\r\n ]).then(() => {\r\n team.encryptionKeyUrl = k.uri || k;\r\n\r\n // we only want to set the defaultActivityEncryptionKeyUrl if we've\r\n // bound a new key\r\n if (!key) {\r\n team.defaultActivityEncryptionKeyUrl =\r\n team.defaultActivityEncryptionKeyUrl || k.uri || k;\r\n }\r\n });\r\n });\r\n },\r\n },\r\n {\r\n name: 'encryptPropSummary',\r\n direction: 'outbound',\r\n fn(ctx, key, team) {\r\n return ctx.transform('encryptTextProp', 'summary', key, team);\r\n },\r\n },\r\n {\r\n name: 'normalizeTeam',\r\n fn(ctx, team) {\r\n team.conversations = team.conversations || {};\r\n team.conversations.items = team.conversations.items || [];\r\n team.teamMembers = team.teamMembers || {};\r\n team.teamMembers.items = team.teamMembers.items || [];\r\n\r\n return Promise.all([\r\n Promise.all(\r\n team.conversations.items.map((item) => ctx.transform('normalizeObject', item))\r\n ),\r\n Promise.all(\r\n team.teamMembers.items.map((item) => ctx.transform('normalizeObject', item))\r\n ),\r\n ]);\r\n },\r\n },\r\n ],\r\n },\r\n config,\r\n});\r\n\r\nexport {default} from './team';\r\n"],"mappings":"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"}
|
package/dist/team.js
CHANGED
|
@@ -32,14 +32,14 @@ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (
|
|
|
32
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; }
|
|
33
33
|
var Team = _webexCore.WebexPlugin.extend({
|
|
34
34
|
namespace: 'Team',
|
|
35
|
-
/**
|
|
36
|
-
* Move an existing group conversation into a team.
|
|
37
|
-
* @param {TeamObject} team
|
|
38
|
-
* @param {ConversationObject} conversation
|
|
39
|
-
* @param {Object} activity Reference to the activity that will eventually be
|
|
40
|
-
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
41
|
-
* provisional activity
|
|
42
|
-
* @returns {Promise} Resolves with the add activity
|
|
35
|
+
/**
|
|
36
|
+
* Move an existing group conversation into a team.
|
|
37
|
+
* @param {TeamObject} team
|
|
38
|
+
* @param {ConversationObject} conversation
|
|
39
|
+
* @param {Object} activity Reference to the activity that will eventually be
|
|
40
|
+
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
41
|
+
* provisional activity
|
|
42
|
+
* @returns {Promise} Resolves with the add activity
|
|
43
43
|
*/
|
|
44
44
|
addConversation: function addConversation(team, conversation, activity) {
|
|
45
45
|
var _this = this;
|
|
@@ -62,14 +62,14 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
62
62
|
return _this.webex.internal.conversation.submit(a);
|
|
63
63
|
});
|
|
64
64
|
},
|
|
65
|
-
/**
|
|
66
|
-
* Add a member to a team
|
|
67
|
-
* @param {TeamObject} team
|
|
68
|
-
* @param {Object} participant
|
|
69
|
-
* @param {Object} activity Reference to the activity that will eventually be
|
|
70
|
-
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
71
|
-
* provisional activity
|
|
72
|
-
* @returns {Promise} Resolves with activity that was posted
|
|
65
|
+
/**
|
|
66
|
+
* Add a member to a team
|
|
67
|
+
* @param {TeamObject} team
|
|
68
|
+
* @param {Object} participant
|
|
69
|
+
* @param {Object} activity Reference to the activity that will eventually be
|
|
70
|
+
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
71
|
+
* provisional activity
|
|
72
|
+
* @returns {Promise} Resolves with activity that was posted
|
|
73
73
|
*/
|
|
74
74
|
addMember: function addMember(team, participant, activity) {
|
|
75
75
|
var _this2 = this;
|
|
@@ -77,13 +77,13 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
77
77
|
return _this2.webex.internal.conversation.add(generalConversation, participant, activity);
|
|
78
78
|
});
|
|
79
79
|
},
|
|
80
|
-
/**
|
|
81
|
-
* Create a team
|
|
82
|
-
* @param {NewTeamObject} params
|
|
83
|
-
* @param {string} params.displayName
|
|
84
|
-
* @param {string} params.summary
|
|
85
|
-
* @param {Array} params.participants
|
|
86
|
-
* @returns {Promise} Resolves with the created team
|
|
80
|
+
/**
|
|
81
|
+
* Create a team
|
|
82
|
+
* @param {NewTeamObject} params
|
|
83
|
+
* @param {string} params.displayName
|
|
84
|
+
* @param {string} params.summary
|
|
85
|
+
* @param {Array} params.participants
|
|
86
|
+
* @returns {Promise} Resolves with the created team
|
|
87
87
|
*/
|
|
88
88
|
create: function create(params) {
|
|
89
89
|
var _this3 = this;
|
|
@@ -113,17 +113,17 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
113
113
|
return res.body;
|
|
114
114
|
});
|
|
115
115
|
},
|
|
116
|
-
/**
|
|
117
|
-
* Create a conversation within a team. Currently does not support
|
|
118
|
-
* activities besides add (ie no post or share activities).
|
|
119
|
-
* @param {TeamObject} team
|
|
120
|
-
* @param {NewConversationObject} params
|
|
121
|
-
* @param {string} params.displayName
|
|
122
|
-
* @param {string} params.summary
|
|
123
|
-
* @param {Array} params.participants
|
|
124
|
-
* @param {Object} options
|
|
125
|
-
* @param {boolean} options.includeAllTeamMembers
|
|
126
|
-
* @returns {Promise} Resolves with the newly created conversation
|
|
116
|
+
/**
|
|
117
|
+
* Create a conversation within a team. Currently does not support
|
|
118
|
+
* activities besides add (ie no post or share activities).
|
|
119
|
+
* @param {TeamObject} team
|
|
120
|
+
* @param {NewConversationObject} params
|
|
121
|
+
* @param {string} params.displayName
|
|
122
|
+
* @param {string} params.summary
|
|
123
|
+
* @param {Array} params.participants
|
|
124
|
+
* @param {Object} options
|
|
125
|
+
* @param {boolean} options.includeAllTeamMembers
|
|
126
|
+
* @returns {Promise} Resolves with the newly created conversation
|
|
127
127
|
*/
|
|
128
128
|
createConversation: function createConversation(team, params) {
|
|
129
129
|
var _this4 = this;
|
|
@@ -156,14 +156,14 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
156
156
|
return res.body;
|
|
157
157
|
});
|
|
158
158
|
},
|
|
159
|
-
/**
|
|
160
|
-
* Retrieve a single team
|
|
161
|
-
* @param {Object|Team~TeamObject} team
|
|
162
|
-
* @param {string} team.url
|
|
163
|
-
* @param {Object} options
|
|
164
|
-
* @param {boolean} options.includeTeamConversations
|
|
165
|
-
* @param {boolean} options.includeTeamMembers
|
|
166
|
-
* @returns {Promise} Resolves with the requested team
|
|
159
|
+
/**
|
|
160
|
+
* Retrieve a single team
|
|
161
|
+
* @param {Object|Team~TeamObject} team
|
|
162
|
+
* @param {string} team.url
|
|
163
|
+
* @param {Object} options
|
|
164
|
+
* @param {boolean} options.includeTeamConversations
|
|
165
|
+
* @param {boolean} options.includeTeamMembers
|
|
166
|
+
* @returns {Promise} Resolves with the requested team
|
|
167
167
|
*/
|
|
168
168
|
get: function get(_ref) {
|
|
169
169
|
var _this5 = this;
|
|
@@ -185,11 +185,11 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
185
185
|
});
|
|
186
186
|
});
|
|
187
187
|
},
|
|
188
|
-
/**
|
|
189
|
-
* Get the list of conversations for a particular team
|
|
190
|
-
* @param {TeamObject} team
|
|
191
|
-
* @param {String} team.url
|
|
192
|
-
* @returns {Promise} Resolves with an array of conversations
|
|
188
|
+
/**
|
|
189
|
+
* Get the list of conversations for a particular team
|
|
190
|
+
* @param {TeamObject} team
|
|
191
|
+
* @param {String} team.url
|
|
192
|
+
* @returns {Promise} Resolves with an array of conversations
|
|
193
193
|
*/
|
|
194
194
|
listConversations: function listConversations(_ref2) {
|
|
195
195
|
var url = _ref2.url;
|
|
@@ -202,12 +202,12 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
202
202
|
return res.body.items;
|
|
203
203
|
});
|
|
204
204
|
},
|
|
205
|
-
/**
|
|
206
|
-
* Join a team conversation
|
|
207
|
-
* @param {TeamObject} team
|
|
208
|
-
* @param {ConversationObject} conversation
|
|
209
|
-
* @param {userId} userId
|
|
210
|
-
* @returns {Promise} Resolves with the conversation
|
|
205
|
+
/**
|
|
206
|
+
* Join a team conversation
|
|
207
|
+
* @param {TeamObject} team
|
|
208
|
+
* @param {ConversationObject} conversation
|
|
209
|
+
* @param {userId} userId
|
|
210
|
+
* @returns {Promise} Resolves with the conversation
|
|
211
211
|
*/
|
|
212
212
|
joinConversation: function joinConversation(team, conversation, userId) {
|
|
213
213
|
if (!userId) {
|
|
@@ -237,12 +237,12 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
237
237
|
return res.body;
|
|
238
238
|
});
|
|
239
239
|
},
|
|
240
|
-
/**
|
|
241
|
-
* Retrieve all teams
|
|
242
|
-
* @param {Object} options
|
|
243
|
-
* @param {boolean} options.includeTeamConversations
|
|
244
|
-
* @param {boolean} options.includeTeamMembers
|
|
245
|
-
* @returns {Promise} Resolves with the requested teams
|
|
240
|
+
/**
|
|
241
|
+
* Retrieve all teams
|
|
242
|
+
* @param {Object} options
|
|
243
|
+
* @param {boolean} options.includeTeamConversations
|
|
244
|
+
* @param {boolean} options.includeTeamMembers
|
|
245
|
+
* @returns {Promise} Resolves with the requested teams
|
|
246
246
|
*/
|
|
247
247
|
list: function list() {
|
|
248
248
|
var _arguments = arguments,
|
|
@@ -308,14 +308,14 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
308
308
|
}, _callee);
|
|
309
309
|
}))();
|
|
310
310
|
},
|
|
311
|
-
/**
|
|
312
|
-
* Remove a member from a team
|
|
313
|
-
* @param {TeamObject} team
|
|
314
|
-
* @param {Object} participant
|
|
315
|
-
* @param {Object} activity Reference to the activity that will eventually be
|
|
316
|
-
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
317
|
-
* provisional activity
|
|
318
|
-
* @returns {Promise} Resolves with activity that was posted
|
|
311
|
+
/**
|
|
312
|
+
* Remove a member from a team
|
|
313
|
+
* @param {TeamObject} team
|
|
314
|
+
* @param {Object} participant
|
|
315
|
+
* @param {Object} activity Reference to the activity that will eventually be
|
|
316
|
+
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
317
|
+
* provisional activity
|
|
318
|
+
* @returns {Promise} Resolves with activity that was posted
|
|
319
319
|
*/
|
|
320
320
|
removeMember: function removeMember(team, participant, activity) {
|
|
321
321
|
var _this7 = this;
|
|
@@ -323,14 +323,14 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
323
323
|
return _this7.webex.internal.conversation.leave(generalConversation, participant, activity);
|
|
324
324
|
});
|
|
325
325
|
},
|
|
326
|
-
/**
|
|
327
|
-
* Remove a team conversation from a team.
|
|
328
|
-
* @param {TeamObject} team
|
|
329
|
-
* @param {ConversationObject} conversation to be removed
|
|
330
|
-
* @param {Object} activity Reference to the activity that will eventually be
|
|
331
|
-
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
332
|
-
* provisional activity
|
|
333
|
-
* @returns {Promise} Resolves with the leave activity
|
|
326
|
+
/**
|
|
327
|
+
* Remove a team conversation from a team.
|
|
328
|
+
* @param {TeamObject} team
|
|
329
|
+
* @param {ConversationObject} conversation to be removed
|
|
330
|
+
* @param {Object} activity Reference to the activity that will eventually be
|
|
331
|
+
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
332
|
+
* provisional activity
|
|
333
|
+
* @returns {Promise} Resolves with the leave activity
|
|
334
334
|
*/
|
|
335
335
|
removeConversation: function removeConversation(team, conversation, activity) {
|
|
336
336
|
var _this8 = this;
|
|
@@ -351,14 +351,14 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
351
351
|
return _this8.webex.internal.conversation.submit(a);
|
|
352
352
|
});
|
|
353
353
|
},
|
|
354
|
-
/**
|
|
355
|
-
* Update the displayName, summary, or teamColor field for a team.
|
|
356
|
-
* @param {TeamObject} team to be updated
|
|
357
|
-
* @param {Object} object with updated displayName, summary, and/or teamColor
|
|
358
|
-
* @param {Object} activity Reference to the activity that will eventually be
|
|
359
|
-
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
360
|
-
* provisional activity
|
|
361
|
-
* @returns {Promise} Resolves with posted activity
|
|
354
|
+
/**
|
|
355
|
+
* Update the displayName, summary, or teamColor field for a team.
|
|
356
|
+
* @param {TeamObject} team to be updated
|
|
357
|
+
* @param {Object} object with updated displayName, summary, and/or teamColor
|
|
358
|
+
* @param {Object} activity Reference to the activity that will eventually be
|
|
359
|
+
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
360
|
+
* provisional activity
|
|
361
|
+
* @returns {Promise} Resolves with posted activity
|
|
362
362
|
*/
|
|
363
363
|
update: function update(team, object, activity) {
|
|
364
364
|
return this.webex.internal.conversation.update(team, object, activity);
|
|
@@ -414,15 +414,15 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
414
414
|
});
|
|
415
415
|
}));
|
|
416
416
|
} /* eslint-enable require-jsdoc */,
|
|
417
|
-
version: "2.59.
|
|
417
|
+
version: "2.59.0"
|
|
418
418
|
});
|
|
419
419
|
|
|
420
|
-
/**
|
|
421
|
-
* Assign or unassign a team member to be a moderator of a team
|
|
422
|
-
* @param {TeamObject} team
|
|
423
|
-
* @param {Object} participant
|
|
424
|
-
* @param {Object} activity
|
|
425
|
-
* @returns {Promise} Resolves with activity that was posted
|
|
420
|
+
/**
|
|
421
|
+
* Assign or unassign a team member to be a moderator of a team
|
|
422
|
+
* @param {TeamObject} team
|
|
423
|
+
* @param {Object} participant
|
|
424
|
+
* @param {Object} activity
|
|
425
|
+
* @returns {Promise} Resolves with activity that was posted
|
|
426
426
|
*/
|
|
427
427
|
['assignModerator', 'unassignModerator'].forEach(function (verb) {
|
|
428
428
|
Team.prototype[verb] = function submitModerationChangeActivity(team, member, activity) {
|
|
@@ -433,13 +433,13 @@ var Team = _webexCore.WebexPlugin.extend({
|
|
|
433
433
|
};
|
|
434
434
|
});
|
|
435
435
|
|
|
436
|
-
/**
|
|
437
|
-
* Archive or unarchive a team or team conversation.
|
|
438
|
-
* @param {TeamObject|ConversationObject} target team or team conversation that should be archived
|
|
439
|
-
* @param {Object} activity Reference to the activity that will eventually be
|
|
440
|
-
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
441
|
-
* provisional activity
|
|
442
|
-
* @returns {Promise} Resolves with the posted activity
|
|
436
|
+
/**
|
|
437
|
+
* Archive or unarchive a team or team conversation.
|
|
438
|
+
* @param {TeamObject|ConversationObject} target team or team conversation that should be archived
|
|
439
|
+
* @param {Object} activity Reference to the activity that will eventually be
|
|
440
|
+
* posted. Use this to (a) pass in e.g. clientTempId and (b) render a
|
|
441
|
+
* provisional activity
|
|
442
|
+
* @returns {Promise} Resolves with the posted activity
|
|
443
443
|
*/
|
|
444
444
|
['archive', 'unarchive'].forEach(function (verb) {
|
|
445
445
|
Team.prototype[verb] = function submitArchiveStateChangeActivity(target, activity) {
|
package/dist/team.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_querystring","_interopRequireDefault","require","_uuid","_webexCore","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Team","WebexPlugin","extend","namespace","addConversation","team","conversation","activity","_this","_ensureGeneralConversation","then","generalConversation","webex","internal","prepare","verb","prepareConversation","id","objectType","kmsMessage","method","uri","resourceUri","kmsResourceObjectUrl","userIds","a","submit","addMember","participant","_this2","add","create","params","_this3","displayName","_promise","reject","Error","participants","all","map","user","asUUID","unshift","device","userId","_uniq2","_prepareTeam","payload","request","service","resource","body","res","createConversation","_this4","options","undefined","url","_prepareTeamConversation","concat","qs","_pick2","get","_ref","_this5","includeTeamConversations","includeTeamMembers","_recordUUIDs","listConversations","_ref2","items","joinConversation","client","clientId","credential","bearer","credentials","supertoken","access_token","requestId","uuid","v4","list","_arguments","_this6","_asyncToGenerator2","_regenerator","mark","_callee","results","_iterator","_step","result","wrap","_callee$","_context","prev","api","sent","additionalUrls","host","abrupt","stop","removeMember","_this7","leave","removeConversation","_this8","properties","querystring","stringify","authId","update","generalConversationUuid","conversations","_find2","resolve","_prepareConversationForCreation","summary","teamConversation","_this9","teamMembers","type","recordUUID","catch","logger","warn","version","submitModerationChangeActivity","member","_this10","submitArchiveStateChangeActivity","_this11","teamUrl","getConvoUrl","_default","exports"],"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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"}
|
|
1
|
+
{"version":3,"names":["_querystring","_interopRequireDefault","require","_uuid","_webexCore","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","call","step","next","_e2","return","minLen","_arrayLikeToArray","Object","prototype","toString","slice","constructor","name","_Array$from","test","arr","len","arr2","Array","ownKeys","object","enumerableOnly","keys","_Object$keys","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","arguments","source","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","Team","WebexPlugin","extend","namespace","addConversation","team","conversation","activity","_this","_ensureGeneralConversation","then","generalConversation","webex","internal","prepare","verb","prepareConversation","id","objectType","kmsMessage","method","uri","resourceUri","kmsResourceObjectUrl","userIds","a","submit","addMember","participant","_this2","add","create","params","_this3","displayName","_promise","reject","Error","participants","all","map","user","asUUID","unshift","device","userId","_uniq2","_prepareTeam","payload","request","service","resource","body","res","createConversation","_this4","options","undefined","url","_prepareTeamConversation","concat","qs","_pick2","get","_ref","_this5","includeTeamConversations","includeTeamMembers","_recordUUIDs","listConversations","_ref2","items","joinConversation","client","clientId","credential","bearer","credentials","supertoken","access_token","requestId","uuid","v4","list","_arguments","_this6","_asyncToGenerator2","_regenerator","mark","_callee","results","_iterator","_step","result","wrap","_callee$","_context","prev","api","sent","additionalUrls","host","abrupt","stop","removeMember","_this7","leave","removeConversation","_this8","properties","querystring","stringify","authId","update","generalConversationUuid","conversations","_find2","resolve","_prepareConversationForCreation","summary","teamConversation","_this9","teamMembers","type","recordUUID","catch","logger","warn","version","submitModerationChangeActivity","member","_this10","submitArchiveStateChangeActivity","_this11","teamUrl","getConvoUrl","_default","exports"],"sources":["team.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport querystring from 'querystring';\r\n\r\nimport uuid from 'uuid';\r\nimport {find, pick, uniq} from 'lodash';\r\nimport {WebexPlugin} from '@webex/webex-core';\r\n\r\nconst Team = WebexPlugin.extend({\r\n namespace: 'Team',\r\n\r\n /**\r\n * Move an existing group conversation into a team.\r\n * @param {TeamObject} team\r\n * @param {ConversationObject} conversation\r\n * @param {Object} activity Reference to the activity that will eventually be\r\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\r\n * provisional activity\r\n * @returns {Promise} Resolves with the add activity\r\n */\r\n addConversation(team, conversation, activity) {\r\n return this._ensureGeneralConversation(team)\r\n .then((generalConversation) =>\r\n this.webex.internal.conversation.prepare(activity, {\r\n verb: 'add',\r\n target: this.webex.internal.conversation.prepareConversation(generalConversation),\r\n object: {\r\n id: conversation.id,\r\n objectType: 'conversation',\r\n },\r\n kmsMessage: {\r\n method: 'create',\r\n uri: '/authorizations',\r\n resourceUri: conversation.kmsResourceObjectUrl,\r\n userIds: [generalConversation.kmsResourceObjectUrl],\r\n },\r\n })\r\n )\r\n .then((a) => this.webex.internal.conversation.submit(a));\r\n },\r\n\r\n /**\r\n * Add a member to a team\r\n * @param {TeamObject} team\r\n * @param {Object} participant\r\n * @param {Object} activity Reference to the activity that will eventually be\r\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\r\n * provisional activity\r\n * @returns {Promise} Resolves with activity that was posted\r\n */\r\n addMember(team, participant, activity) {\r\n return this._ensureGeneralConversation(team).then((generalConversation) =>\r\n this.webex.internal.conversation.add(generalConversation, participant, activity)\r\n );\r\n },\r\n\r\n /**\r\n * Create a team\r\n * @param {NewTeamObject} params\r\n * @param {string} params.displayName\r\n * @param {string} params.summary\r\n * @param {Array} params.participants\r\n * @returns {Promise} Resolves with the created team\r\n */\r\n create(params) {\r\n if (!params.displayName) {\r\n return Promise.reject(new Error('`params.displayName` is required'));\r\n }\r\n\r\n if (!params.participants || params.participants.length === 0) {\r\n return Promise.reject(new Error('`params.participants` is required'));\r\n }\r\n\r\n return Promise.all(\r\n params.participants.map((participant) =>\r\n this.webex.internal.user.asUUID(participant, {create: true})\r\n )\r\n )\r\n .then((participants) => {\r\n participants.unshift(this.webex.internal.device.userId);\r\n params.participants = uniq(participants);\r\n })\r\n .then(() => this._prepareTeam(params))\r\n .then((payload) =>\r\n this.webex.request({\r\n method: 'POST',\r\n service: 'conversation',\r\n resource: 'teams',\r\n body: payload,\r\n })\r\n )\r\n .then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Create a conversation within a team. Currently does not support\r\n * activities besides add (ie no post or share activities).\r\n * @param {TeamObject} team\r\n * @param {NewConversationObject} params\r\n * @param {string} params.displayName\r\n * @param {string} params.summary\r\n * @param {Array} params.participants\r\n * @param {Object} options\r\n * @param {boolean} options.includeAllTeamMembers\r\n * @returns {Promise} Resolves with the newly created conversation\r\n */\r\n createConversation(team, params, options = {}) {\r\n if (!team.url) {\r\n return Promise.reject(new Error('`team.url` is required'));\r\n }\r\n\r\n if (!params.displayName) {\r\n return Promise.reject(new Error('`params.displayName` is required'));\r\n }\r\n\r\n return this._ensureGeneralConversation(team)\r\n .then((generalConversation) =>\r\n Promise.all(\r\n params.participants.map((participant) =>\r\n this.webex.internal.user.asUUID(participant, {create: true})\r\n )\r\n )\r\n .then((participants) => {\r\n participants.unshift(this.webex.internal.device.userId);\r\n params.participants = uniq(participants);\r\n })\r\n .then(() => this._prepareTeamConversation(generalConversation, params))\r\n )\r\n .then((payload) =>\r\n this.webex.request({\r\n method: 'POST',\r\n uri: `${team.url}/conversations`,\r\n qs: pick(options, 'includeAllTeamMembers'),\r\n body: payload,\r\n })\r\n )\r\n .then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Retrieve a single team\r\n * @param {Object|Team~TeamObject} team\r\n * @param {string} team.url\r\n * @param {Object} options\r\n * @param {boolean} options.includeTeamConversations\r\n * @param {boolean} options.includeTeamMembers\r\n * @returns {Promise} Resolves with the requested team\r\n */\r\n get({url}, options = {}) {\r\n if (!url) {\r\n return Promise.reject(new Error('`team.url` is required'));\r\n }\r\n const params = {\r\n includeTeamConversations: false,\r\n includeTeamMembers: false,\r\n ...options,\r\n };\r\n\r\n return this.webex\r\n .request({\r\n uri: url,\r\n qs: params,\r\n })\r\n .then((res) => this._recordUUIDs(res.body).then(() => res.body));\r\n },\r\n\r\n /**\r\n * Get the list of conversations for a particular team\r\n * @param {TeamObject} team\r\n * @param {String} team.url\r\n * @returns {Promise} Resolves with an array of conversations\r\n */\r\n listConversations({url}) {\r\n if (!url) {\r\n return Promise.reject(new Error('`team.url` is required'));\r\n }\r\n\r\n return this.webex\r\n .request({\r\n uri: `${url}/conversations`,\r\n })\r\n .then((res) => res.body.items);\r\n },\r\n\r\n /**\r\n * Join a team conversation\r\n * @param {TeamObject} team\r\n * @param {ConversationObject} conversation\r\n * @param {userId} userId\r\n * @returns {Promise} Resolves with the conversation\r\n */\r\n joinConversation(team, conversation, userId) {\r\n if (!userId) {\r\n return Promise.reject(new Error('`userId` is required'));\r\n }\r\n\r\n const body = {\r\n kmsMessage: {\r\n client: {\r\n clientId: this.webex.internal.device.url,\r\n credential: {\r\n bearer: this.webex.credentials.supertoken.access_token,\r\n userId,\r\n },\r\n },\r\n method: 'create',\r\n requestId: uuid.v4(),\r\n resourceUri: conversation.kmsResourceObjectUrl,\r\n uri: '/authorizations',\r\n userIds: [userId],\r\n },\r\n };\r\n\r\n return this.webex\r\n .request({\r\n method: 'POST',\r\n uri: `${team.url}/conversations/${conversation.id}/participants`,\r\n body,\r\n })\r\n .then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Retrieve all teams\r\n * @param {Object} options\r\n * @param {boolean} options.includeTeamConversations\r\n * @param {boolean} options.includeTeamMembers\r\n * @returns {Promise} Resolves with the requested teams\r\n */\r\n async list(options = {}) {\r\n const params = {\r\n includeTeamConversations: false,\r\n includeTeamMembers: false,\r\n ...options,\r\n };\r\n const resource = 'teams';\r\n\r\n const res = await this.webex.request({\r\n api: 'conversation',\r\n resource,\r\n qs: params,\r\n });\r\n\r\n let list = res.body.items.slice(0);\r\n\r\n if (res.body.additionalUrls) {\r\n const results = await Promise.all(\r\n res.body.additionalUrls.map((host) => {\r\n const uri = `${host}/${resource}`;\r\n\r\n return this.webex.request({\r\n uri,\r\n qs: params,\r\n });\r\n })\r\n );\r\n\r\n for (const result of results) {\r\n if (result.body && result.body.items && result.body.items.length) {\r\n list = list.concat(result.body.items);\r\n }\r\n }\r\n }\r\n\r\n await Promise.all(res.body.items.map((team) => this._recordUUIDs(team)));\r\n\r\n return list;\r\n },\r\n\r\n /**\r\n * Remove a member from a team\r\n * @param {TeamObject} team\r\n * @param {Object} participant\r\n * @param {Object} activity Reference to the activity that will eventually be\r\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\r\n * provisional activity\r\n * @returns {Promise} Resolves with activity that was posted\r\n */\r\n removeMember(team, participant, activity) {\r\n return this._ensureGeneralConversation(team).then((generalConversation) =>\r\n this.webex.internal.conversation.leave(generalConversation, participant, activity)\r\n );\r\n },\r\n\r\n /**\r\n * Remove a team conversation from a team.\r\n * @param {TeamObject} team\r\n * @param {ConversationObject} conversation to be removed\r\n * @param {Object} activity Reference to the activity that will eventually be\r\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\r\n * provisional activity\r\n * @returns {Promise} Resolves with the leave activity\r\n */\r\n removeConversation(team, conversation, activity) {\r\n return this._ensureGeneralConversation(team)\r\n .then((generalConversation) => {\r\n const properties = {\r\n verb: 'remove',\r\n object: pick(conversation, 'id', 'url', 'objectType'),\r\n target: pick(generalConversation, 'id', 'url', 'objectType'),\r\n kmsMessage: {\r\n method: 'delete',\r\n uri: `<KRO>/authorizations?${querystring.stringify({authId: conversation.id})}`,\r\n },\r\n };\r\n\r\n return this.webex.internal.conversation.prepare(activity, properties);\r\n })\r\n .then((a) => this.webex.internal.conversation.submit(a));\r\n },\r\n\r\n /**\r\n * Update the displayName, summary, or teamColor field for a team.\r\n * @param {TeamObject} team to be updated\r\n * @param {Object} object with updated displayName, summary, and/or teamColor\r\n * @param {Object} activity Reference to the activity that will eventually be\r\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\r\n * provisional activity\r\n * @returns {Promise} Resolves with posted activity\r\n */\r\n update(team, object, activity) {\r\n return this.webex.internal.conversation.update(team, object, activity);\r\n },\r\n\r\n /* eslint-disable require-jsdoc */\r\n _ensureGeneralConversation(team) {\r\n if (!team.generalConversationUuid) {\r\n return Promise.reject(new Error('`team.generalConversationUuid` must be present'));\r\n }\r\n\r\n if (team.conversations.items.length) {\r\n const generalConversation = find(team.conversations.items, {\r\n id: team.generalConversationUuid,\r\n });\r\n\r\n if (generalConversation) {\r\n return Promise.resolve(generalConversation);\r\n }\r\n }\r\n\r\n return this.webex.internal.conversation.get({id: team.generalConversationUuid});\r\n },\r\n\r\n _prepareTeam: function _prepareTeam(params) {\r\n const payload = this.webex.internal.conversation._prepareConversationForCreation(params);\r\n\r\n payload.objectType = 'team';\r\n\r\n if (params.summary) {\r\n payload.summary = params.summary;\r\n }\r\n\r\n return Promise.resolve(payload);\r\n },\r\n\r\n _prepareTeamConversation(teamConversation, params) {\r\n if (!teamConversation.kmsResourceObjectUrl) {\r\n return Promise.reject(new Error('Team general conversation must have a KRO'));\r\n }\r\n\r\n const payload = this.webex.internal.conversation._prepareConversationForCreation(params);\r\n\r\n // Push the general conversation KRO on so that team members can\r\n // decrypt the title of this open room without joining it.\r\n payload.kmsMessage.userIds.push(teamConversation.kmsResourceObjectUrl);\r\n\r\n return Promise.resolve(payload);\r\n },\r\n\r\n _recordUUIDs(team) {\r\n if (!team.teamMembers || !team.teamMembers.items) {\r\n return Promise.resolve(team);\r\n }\r\n\r\n return Promise.all(\r\n team.teamMembers.items.map((participant) => {\r\n // ROOMs or LYRA_SPACEs do not have email addresses, so there's no point attempting to\r\n // record their UUIDs.\r\n if (participant.type === 'ROOM' || participant.type === 'LYRA_SPACE') {\r\n return Promise.resolve();\r\n }\r\n\r\n return this.webex.internal.user\r\n .recordUUID(participant)\r\n .catch((err) => this.logger.warn('Could not record uuid', err));\r\n })\r\n );\r\n },\r\n /* eslint-enable require-jsdoc */\r\n});\r\n\r\n/**\r\n * Assign or unassign a team member to be a moderator of a team\r\n * @param {TeamObject} team\r\n * @param {Object} participant\r\n * @param {Object} activity\r\n * @returns {Promise} Resolves with activity that was posted\r\n */\r\n['assignModerator', 'unassignModerator'].forEach((verb) => {\r\n Team.prototype[verb] = function submitModerationChangeActivity(team, member, activity) {\r\n return this._ensureGeneralConversation(team).then((teamConversation) =>\r\n this.webex.internal.conversation[verb](teamConversation, member, activity)\r\n );\r\n };\r\n});\r\n\r\n/**\r\n * Archive or unarchive a team or team conversation.\r\n * @param {TeamObject|ConversationObject} target team or team conversation that should be archived\r\n * @param {Object} activity Reference to the activity that will eventually be\r\n * posted. Use this to (a) pass in e.g. clientTempId and (b) render a\r\n * provisional activity\r\n * @returns {Promise} Resolves with the posted activity\r\n */\r\n['archive', 'unarchive'].forEach((verb) => {\r\n Team.prototype[verb] = function submitArchiveStateChangeActivity(target, activity) {\r\n if (!target.objectType) {\r\n return Promise.reject(new Error('`target.objectType` is required'));\r\n }\r\n\r\n const properties = {\r\n verb,\r\n object: pick(target, 'id', 'url', 'objectType'),\r\n target: pick(target, 'id', 'url', 'objectType'),\r\n };\r\n\r\n const teamUrl = this.webex.internal.conversation.getConvoUrl(target);\r\n\r\n return this.webex.internal.conversation\r\n .prepare(activity, properties)\r\n .then((a) => this.webex.internal.conversation.submit(a, teamUrl));\r\n };\r\n});\r\n\r\nexport default Team;\r\n"],"mappings":"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"}
|