@webex/internal-plugin-flag 2.59.3-next.1 → 2.59.4

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 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-flag
2
-
3
- [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
4
-
5
- > Plugin for the Flag 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-flag
19
- ```
20
-
21
- ## Usage
22
-
23
- ```js
24
- import '@webex/internal-plugin-flag';
25
-
26
- import WebexCore from '@webex/webex-core';
27
-
28
- const webex = new WebexCore();
29
- webex.internal.flag.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-flag
2
+
3
+ [![standard-readme compliant](https://img.shields.io/badge/readme%20style-standard-brightgreen.svg?style=flat-square)](https://github.com/RichardLitt/standard-readme)
4
+
5
+ > Plugin for the Flag 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-flag
19
+ ```
20
+
21
+ ## Usage
22
+
23
+ ```js
24
+ import '@webex/internal-plugin-flag';
25
+
26
+ import WebexCore from '@webex/webex-core';
27
+
28
+ const webex = new WebexCore();
29
+ webex.internal.flag.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
  flag: {}
@@ -1 +1 @@
1
- {"version":3,"names":["_default","flag","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 flag: {},\r\n};\r\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","flag","exports","default"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n flag: {},\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAIe;EACbC,IAAI,EAAE,CAAC;AACT,CAAC;AAAAC,OAAA,CAAAC,OAAA,GAAAH,QAAA"}
package/dist/flag.js CHANGED
@@ -28,11 +28,11 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
28
28
  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; }
29
29
  var Flag = WebexCore.WebexPlugin.extend({
30
30
  namespace: 'Flag',
31
- /**
32
- * Archive a flag
33
- * @param {Object} flag
34
- * @param {Object} options
35
- * @returns {Promise<Object>} Resolves with the flag archival
31
+ /**
32
+ * Archive a flag
33
+ * @param {Object} flag
34
+ * @param {Object} options
35
+ * @returns {Promise<Object>} Resolves with the flag archival
36
36
  */
37
37
  archive: function archive(flag, options) {
38
38
  if (!flag.url) {
@@ -51,11 +51,11 @@ var Flag = WebexCore.WebexPlugin.extend({
51
51
  return res.body;
52
52
  });
53
53
  },
54
- /**
55
- * Flags an activity
56
- * @param {Object} activity
57
- * @param {Object} options
58
- * @returns {Promise<Object>} Resolves with the flag creation
54
+ /**
55
+ * Flags an activity
56
+ * @param {Object} activity
57
+ * @param {Object} options
58
+ * @returns {Promise<Object>} Resolves with the flag creation
59
59
  */
60
60
  create: function create(activity, options) {
61
61
  if (!activity.url) {
@@ -77,10 +77,10 @@ var Flag = WebexCore.WebexPlugin.extend({
77
77
  return res.body;
78
78
  });
79
79
  },
80
- /**
81
- * Gets a list of Flags for a user
82
- * @param {Object} options
83
- * @returns {Promise} Resolves with the fetched flags
80
+ /**
81
+ * Gets a list of Flags for a user
82
+ * @param {Object} options
83
+ * @returns {Promise} Resolves with the fetched flags
84
84
  */
85
85
  list: function list(options) {
86
86
  options = options || {};
@@ -97,11 +97,11 @@ var Flag = WebexCore.WebexPlugin.extend({
97
97
  return res.body.items;
98
98
  });
99
99
  },
100
- /**
101
- * Gets an array of activities where the status is 200
102
- * @param {Object} flags
103
- * @returns {Promise<Object>} Resolves with the activities
104
- * TODO: this should be implemented as a batched request when migrating to the modular sdk
100
+ /**
101
+ * Gets an array of activities where the status is 200
102
+ * @param {Object} flags
103
+ * @returns {Promise<Object>} Resolves with the activities
104
+ * TODO: this should be implemented as a batched request when migrating to the modular sdk
105
105
  */
106
106
  mapToActivities: function mapToActivities(flags) {
107
107
  var _this = this;
@@ -180,11 +180,11 @@ var Flag = WebexCore.WebexPlugin.extend({
180
180
  }, _callee2);
181
181
  }))();
182
182
  },
183
- /**
184
- * Delete a flag
185
- * @param {Object} flag
186
- * @param {Object} options
187
- * @returns {Promise<Object>} Resolves with the flag deletion
183
+ /**
184
+ * Delete a flag
185
+ * @param {Object} flag
186
+ * @param {Object} options
187
+ * @returns {Promise<Object>} Resolves with the flag deletion
188
188
  */
189
189
  delete: function _delete(flag, options) {
190
190
  if (!flag.url) {
@@ -200,11 +200,11 @@ var Flag = WebexCore.WebexPlugin.extend({
200
200
  return res.body;
201
201
  });
202
202
  },
203
- /**
204
- * UnFlags an activity
205
- * @param {Object} flag
206
- * @param {Object} options
207
- * @returns {Promise<Object>} Resolves with the flag removal
203
+ /**
204
+ * UnFlags an activity
205
+ * @param {Object} flag
206
+ * @param {Object} options
207
+ * @returns {Promise<Object>} Resolves with the flag removal
208
208
  */
209
209
  unflag: function unflag(flag, options) {
210
210
  if (!flag.url) {
package/dist/flag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["WebexCore","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from2","test","arr","len","arr2","Array","Flag","WebexPlugin","extend","namespace","archive","flag","options","url","_promise","reject","Error","params","method","uri","body","state","webex","request","then","res","create","activity","service","resource","target","list","qs","items","mapToActivities","flags","_this","_asyncToGenerator2","_regenerator","mark","_callee2","mapUrlActivities","_iterator","_step","convoUrlRegex","match","activities","responses","wrap","_callee2$","_context2","prev","_map","exec","push","logger","warn","concat","all","_from","_ref2","_callee","_ref","_ref3","convoUrl","activityUrls","_callee$","_context","_slicedToArray2","sent","abrupt","multistatus","reduce","activitiesArr","statusData","status","data","stop","_x","apply","arguments","_flatten2","delete","_delete","unflag","_default","exports"],"sources":["flag.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\nimport {flatten} from 'lodash';\r\nimport * as WebexCore from '@webex/webex-core';\r\n\r\nconst Flag = WebexCore.WebexPlugin.extend({\r\n namespace: 'Flag',\r\n\r\n /**\r\n * Archive a flag\r\n * @param {Object} flag\r\n * @param {Object} options\r\n * @returns {Promise<Object>} Resolves with the flag archival\r\n */\r\n archive(flag, options) {\r\n if (!flag.url) {\r\n return Promise.reject(new Error('`flag.url` is required'));\r\n }\r\n options = options || {};\r\n const params = {\r\n method: 'PUT',\r\n uri: flag.url,\r\n options,\r\n body: {\r\n state: 'archived',\r\n },\r\n };\r\n\r\n return this.webex.request(params).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Flags an activity\r\n * @param {Object} activity\r\n * @param {Object} options\r\n * @returns {Promise<Object>} Resolves with the flag creation\r\n */\r\n create(activity, options) {\r\n if (!activity.url) {\r\n return Promise.reject(new Error('`activity.url` is required'));\r\n }\r\n options = options || {};\r\n const params = {\r\n method: 'POST',\r\n service: 'userApps',\r\n resource: '/flags',\r\n options,\r\n body: {\r\n 'conversation-url': activity.target.url,\r\n 'flag-item': activity.url,\r\n state: 'flagged',\r\n },\r\n };\r\n\r\n return this.webex.request(params).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * Gets a list of Flags for a user\r\n * @param {Object} options\r\n * @returns {Promise} Resolves with the fetched flags\r\n */\r\n list(options) {\r\n options = options || {};\r\n const params = {\r\n method: 'GET',\r\n service: 'userApps',\r\n resource: '/flags',\r\n options,\r\n qs: {\r\n state: 'flagged',\r\n },\r\n };\r\n\r\n return this.webex.request(params).then((res) => res.body.items);\r\n },\r\n\r\n /**\r\n * Gets an array of activities where the status is 200\r\n * @param {Object} flags\r\n * @returns {Promise<Object>} Resolves with the activities\r\n * TODO: this should be implemented as a batched request when migrating to the modular sdk\r\n */\r\n async mapToActivities(flags) {\r\n const mapUrlActivities = new Map();\r\n\r\n for (const flag of flags) {\r\n const convoUrlRegex = /(.*)\\/activities\\//;\r\n const activity = flag['flag-item'];\r\n const match = convoUrlRegex.exec(activity);\r\n\r\n if (match) {\r\n const url = match[1];\r\n let activities = mapUrlActivities.get(url);\r\n\r\n if (!activities) {\r\n activities = [];\r\n mapUrlActivities.set(url, activities);\r\n }\r\n activities.push(activity);\r\n } else {\r\n this.logger.warn(`The activity URL has a strange format (${activity}). Ignoring it.`);\r\n }\r\n }\r\n\r\n const responses = await Promise.all(\r\n Array.from(mapUrlActivities, async ([convoUrl, activityUrls]) => {\r\n const params = {\r\n method: 'POST',\r\n url: `${convoUrl}/bulk_activities_fetch`,\r\n body: {\r\n activityUrls,\r\n },\r\n };\r\n\r\n const res = await this.webex.request(params);\r\n\r\n return res.body.multistatus.reduce((activitiesArr, statusData) => {\r\n if (statusData.status === '200') {\r\n activitiesArr.push(statusData.data.activity);\r\n }\r\n\r\n return activitiesArr;\r\n }, []);\r\n })\r\n );\r\n\r\n return flatten(responses);\r\n },\r\n\r\n /**\r\n * Delete a flag\r\n * @param {Object} flag\r\n * @param {Object} options\r\n * @returns {Promise<Object>} Resolves with the flag deletion\r\n */\r\n delete(flag, options) {\r\n if (!flag.url) {\r\n return Promise.reject(new Error('`flag.url` is required'));\r\n }\r\n options = options || {};\r\n const params = {\r\n method: 'DELETE',\r\n options,\r\n uri: flag.url,\r\n };\r\n\r\n return this.request(params).then((res) => res.body);\r\n },\r\n\r\n /**\r\n * UnFlags an activity\r\n * @param {Object} flag\r\n * @param {Object} options\r\n * @returns {Promise<Object>} Resolves with the flag removal\r\n */\r\n unflag(flag, options) {\r\n if (!flag.url) {\r\n return Promise.reject(new Error('`flag.url` is required'));\r\n }\r\n options = options || {};\r\n const params = {\r\n method: 'PUT',\r\n uri: flag.url,\r\n options,\r\n body: {\r\n state: 'unflagged',\r\n },\r\n };\r\n\r\n return this.webex.request(params).then((res) => res.body);\r\n },\r\n});\r\n\r\nexport default Flag;\r\n"],"mappings":"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"}
1
+ {"version":3,"names":["WebexCore","_interopRequireWildcard","require","_getRequireWildcardCache","nodeInterop","_WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","_typeof","default","cache","has","get","newObj","hasPropertyDescriptor","_Object$defineProperty","_Object$getOwnPropertyDescriptor","key","Object","prototype","hasOwnProperty","call","desc","set","_createForOfIteratorHelper","o","allowArrayLike","it","_Symbol","_Symbol$iterator","_Array$isArray","_unsupportedIterableToArray","length","i","F","s","n","done","value","e","_e","f","TypeError","normalCompletion","didErr","err","step","next","_e2","return","minLen","_arrayLikeToArray","toString","slice","constructor","name","_Array$from2","test","arr","len","arr2","Array","Flag","WebexPlugin","extend","namespace","archive","flag","options","url","_promise","reject","Error","params","method","uri","body","state","webex","request","then","res","create","activity","service","resource","target","list","qs","items","mapToActivities","flags","_this","_asyncToGenerator2","_regenerator","mark","_callee2","mapUrlActivities","_iterator","_step","convoUrlRegex","match","activities","responses","wrap","_callee2$","_context2","prev","_map","exec","push","logger","warn","concat","all","_from","_ref2","_callee","_ref","_ref3","convoUrl","activityUrls","_callee$","_context","_slicedToArray2","sent","abrupt","multistatus","reduce","activitiesArr","statusData","status","data","stop","_x","apply","arguments","_flatten2","delete","_delete","unflag","_default","exports"],"sources":["flag.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\nimport {flatten} from 'lodash';\nimport * as WebexCore from '@webex/webex-core';\n\nconst Flag = WebexCore.WebexPlugin.extend({\n namespace: 'Flag',\n\n /**\n * Archive a flag\n * @param {Object} flag\n * @param {Object} options\n * @returns {Promise<Object>} Resolves with the flag archival\n */\n archive(flag, options) {\n if (!flag.url) {\n return Promise.reject(new Error('`flag.url` is required'));\n }\n options = options || {};\n const params = {\n method: 'PUT',\n uri: flag.url,\n options,\n body: {\n state: 'archived',\n },\n };\n\n return this.webex.request(params).then((res) => res.body);\n },\n\n /**\n * Flags an activity\n * @param {Object} activity\n * @param {Object} options\n * @returns {Promise<Object>} Resolves with the flag creation\n */\n create(activity, options) {\n if (!activity.url) {\n return Promise.reject(new Error('`activity.url` is required'));\n }\n options = options || {};\n const params = {\n method: 'POST',\n service: 'userApps',\n resource: '/flags',\n options,\n body: {\n 'conversation-url': activity.target.url,\n 'flag-item': activity.url,\n state: 'flagged',\n },\n };\n\n return this.webex.request(params).then((res) => res.body);\n },\n\n /**\n * Gets a list of Flags for a user\n * @param {Object} options\n * @returns {Promise} Resolves with the fetched flags\n */\n list(options) {\n options = options || {};\n const params = {\n method: 'GET',\n service: 'userApps',\n resource: '/flags',\n options,\n qs: {\n state: 'flagged',\n },\n };\n\n return this.webex.request(params).then((res) => res.body.items);\n },\n\n /**\n * Gets an array of activities where the status is 200\n * @param {Object} flags\n * @returns {Promise<Object>} Resolves with the activities\n * TODO: this should be implemented as a batched request when migrating to the modular sdk\n */\n async mapToActivities(flags) {\n const mapUrlActivities = new Map();\n\n for (const flag of flags) {\n const convoUrlRegex = /(.*)\\/activities\\//;\n const activity = flag['flag-item'];\n const match = convoUrlRegex.exec(activity);\n\n if (match) {\n const url = match[1];\n let activities = mapUrlActivities.get(url);\n\n if (!activities) {\n activities = [];\n mapUrlActivities.set(url, activities);\n }\n activities.push(activity);\n } else {\n this.logger.warn(`The activity URL has a strange format (${activity}). Ignoring it.`);\n }\n }\n\n const responses = await Promise.all(\n Array.from(mapUrlActivities, async ([convoUrl, activityUrls]) => {\n const params = {\n method: 'POST',\n url: `${convoUrl}/bulk_activities_fetch`,\n body: {\n activityUrls,\n },\n };\n\n const res = await this.webex.request(params);\n\n return res.body.multistatus.reduce((activitiesArr, statusData) => {\n if (statusData.status === '200') {\n activitiesArr.push(statusData.data.activity);\n }\n\n return activitiesArr;\n }, []);\n })\n );\n\n return flatten(responses);\n },\n\n /**\n * Delete a flag\n * @param {Object} flag\n * @param {Object} options\n * @returns {Promise<Object>} Resolves with the flag deletion\n */\n delete(flag, options) {\n if (!flag.url) {\n return Promise.reject(new Error('`flag.url` is required'));\n }\n options = options || {};\n const params = {\n method: 'DELETE',\n options,\n uri: flag.url,\n };\n\n return this.request(params).then((res) => res.body);\n },\n\n /**\n * UnFlags an activity\n * @param {Object} flag\n * @param {Object} options\n * @returns {Promise<Object>} Resolves with the flag removal\n */\n unflag(flag, options) {\n if (!flag.url) {\n return Promise.reject(new Error('`flag.url` is required'));\n }\n options = options || {};\n const params = {\n method: 'PUT',\n uri: flag.url,\n options,\n body: {\n state: 'unflagged',\n },\n };\n\n return this.webex.request(params).then((res) => res.body);\n },\n});\n\nexport default Flag;\n"],"mappings":"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"}
package/dist/index.js CHANGED
@@ -16,8 +16,8 @@ require("@webex/internal-plugin-conversation");
16
16
  require("@webex/internal-plugin-device");
17
17
  var _flag = _interopRequireDefault(require("./flag"));
18
18
  var _config = _interopRequireDefault(require("./config"));
19
- /*!
20
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
19
+ /*!
20
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
21
21
  */
22
22
 
23
23
  (0, _webexCore.registerInternalPlugin)('flag', _flag.default, {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["_webexCore","require","_flag","_interopRequireDefault","_config","registerInternalPlugin","Flag","config","payloadTransformer","predicates","transforms"],"sources":["index.js"],"sourcesContent":["/*!\r\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\r\n */\r\n\r\nimport {registerInternalPlugin} from '@webex/webex-core';\r\n\r\nimport '@webex/internal-plugin-conversation';\r\nimport '@webex/internal-plugin-device';\r\nimport Flag from './flag';\r\nimport config from './config';\r\n\r\nregisterInternalPlugin('flag', Flag, {\r\n config,\r\n payloadTransformer: {\r\n predicates: [],\r\n transforms: [],\r\n },\r\n});\r\n\r\nexport {default} from './flag';\r\n"],"mappings":";;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAEAA,OAAA;AACAA,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AATA;AACA;AACA;;AASA,IAAAI,iCAAsB,EAAC,MAAM,EAAEC,aAAI,EAAE;EACnCC,MAAM,EAANA,eAAM;EACNC,kBAAkB,EAAE;IAClBC,UAAU,EAAE,EAAE;IACdC,UAAU,EAAE;EACd;AACF,CAAC,CAAC"}
1
+ {"version":3,"names":["_webexCore","require","_flag","_interopRequireDefault","_config","registerInternalPlugin","Flag","config","payloadTransformer","predicates","transforms"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport {registerInternalPlugin} from '@webex/webex-core';\n\nimport '@webex/internal-plugin-conversation';\nimport '@webex/internal-plugin-device';\nimport Flag from './flag';\nimport config from './config';\n\nregisterInternalPlugin('flag', Flag, {\n config,\n payloadTransformer: {\n predicates: [],\n transforms: [],\n },\n});\n\nexport {default} from './flag';\n"],"mappings":";;;;;;;;;;;;;AAIA,IAAAA,UAAA,GAAAC,OAAA;AAEAA,OAAA;AACAA,OAAA;AACA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,OAAA,GAAAD,sBAAA,CAAAF,OAAA;AATA;AACA;AACA;;AASA,IAAAI,iCAAsB,EAAC,MAAM,EAAEC,aAAI,EAAE;EACnCC,MAAM,EAANA,eAAM;EACNC,kBAAkB,EAAE;IAClBC,UAAU,EAAE,EAAE;IACdC,UAAU,EAAE;EACd;AACF,CAAC,CAAC"}
package/jest.config.js CHANGED
@@ -1,3 +1,3 @@
1
- const config = require('@webex/jest-config-legacy');
2
-
3
- module.exports = config;
1
+ const config = require('@webex/jest-config-legacy');
2
+
3
+ module.exports = config;
package/package.json CHANGED
@@ -1,5 +1,6 @@
1
1
  {
2
2
  "name": "@webex/internal-plugin-flag",
3
+ "version": "2.59.4",
3
4
  "description": "",
4
5
  "license": "MIT",
5
6
  "author": "Saurabh Jain <saurjai3@cisco.com>",
@@ -16,7 +17,6 @@
16
17
  "scripts": {
17
18
  "build": "yarn build:src",
18
19
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
19
- "deploy:npm": "yarn npm publish",
20
20
  "test": "yarn test:style && yarn test:unit && yarn test:integration",
21
21
  "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
22
22
  "test:integration": "webex-legacy-tools test --integration --runner mocha",
@@ -30,28 +30,27 @@
30
30
  ]
31
31
  },
32
32
  "dependencies": {
33
- "@webex/internal-plugin-conversation": "^2.59.3-next.1",
34
- "@webex/internal-plugin-device": "^2.59.3-next.1",
35
- "@webex/test-helper-chai": "^2.59.3-next.1",
36
- "@webex/test-helper-mock-webex": "^2.59.3-next.1",
37
- "@webex/test-helper-test-users": "^2.59.3-next.1",
38
- "@webex/webex-core": "^2.59.3-next.1",
33
+ "@webex/internal-plugin-conversation": "2.59.4",
34
+ "@webex/internal-plugin-device": "2.59.4",
35
+ "@webex/test-helper-chai": "2.59.4",
36
+ "@webex/test-helper-mock-webex": "2.59.4",
37
+ "@webex/test-helper-test-users": "2.59.4",
38
+ "@webex/webex-core": "2.59.4",
39
39
  "lodash": "^4.17.21"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@babel/core": "^7.17.10",
43
43
  "@types/mocha": "^10",
44
- "@webex/babel-config-legacy": "^0.0.0",
45
- "@webex/eslint-config-legacy": "^0.0.0",
46
- "@webex/jest-config-legacy": "^0.0.0",
47
- "@webex/legacy-tools": "^0.0.0",
48
- "@webex/test-helper-chai": "^2.59.3-next.1",
49
- "@webex/test-helper-mocha": "^2.59.3-next.1",
50
- "@webex/test-helper-mock-webex": "^2.59.3-next.1",
51
- "@webex/test-helper-test-users": "^2.59.3-next.1",
44
+ "@webex/babel-config-legacy": "2.59.4",
45
+ "@webex/eslint-config-legacy": "2.59.4",
46
+ "@webex/jest-config-legacy": "2.59.4",
47
+ "@webex/legacy-tools": "2.59.4",
48
+ "@webex/test-helper-chai": "2.59.4",
49
+ "@webex/test-helper-mocha": "2.59.4",
50
+ "@webex/test-helper-mock-webex": "2.59.4",
51
+ "@webex/test-helper-test-users": "2.59.4",
52
52
  "eslint": "^8.24.0",
53
53
  "mocha": "^10.2.0",
54
54
  "prettier": "^2.7.1"
55
- },
56
- "version": "2.59.3-next.1"
57
- }
55
+ }
56
+ }
package/process CHANGED
@@ -1 +1 @@
1
- module.exports = {browser: true};
1
+ module.exports = {browser: true};
package/src/config.js CHANGED
@@ -1,7 +1,7 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- export default {
6
- flag: {},
7
- };
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ export default {
6
+ flag: {},
7
+ };
package/src/flag.js CHANGED
@@ -1,176 +1,176 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
- import {flatten} from 'lodash';
5
- import * as WebexCore from '@webex/webex-core';
6
-
7
- const Flag = WebexCore.WebexPlugin.extend({
8
- namespace: 'Flag',
9
-
10
- /**
11
- * Archive a flag
12
- * @param {Object} flag
13
- * @param {Object} options
14
- * @returns {Promise<Object>} Resolves with the flag archival
15
- */
16
- archive(flag, options) {
17
- if (!flag.url) {
18
- return Promise.reject(new Error('`flag.url` is required'));
19
- }
20
- options = options || {};
21
- const params = {
22
- method: 'PUT',
23
- uri: flag.url,
24
- options,
25
- body: {
26
- state: 'archived',
27
- },
28
- };
29
-
30
- return this.webex.request(params).then((res) => res.body);
31
- },
32
-
33
- /**
34
- * Flags an activity
35
- * @param {Object} activity
36
- * @param {Object} options
37
- * @returns {Promise<Object>} Resolves with the flag creation
38
- */
39
- create(activity, options) {
40
- if (!activity.url) {
41
- return Promise.reject(new Error('`activity.url` is required'));
42
- }
43
- options = options || {};
44
- const params = {
45
- method: 'POST',
46
- service: 'userApps',
47
- resource: '/flags',
48
- options,
49
- body: {
50
- 'conversation-url': activity.target.url,
51
- 'flag-item': activity.url,
52
- state: 'flagged',
53
- },
54
- };
55
-
56
- return this.webex.request(params).then((res) => res.body);
57
- },
58
-
59
- /**
60
- * Gets a list of Flags for a user
61
- * @param {Object} options
62
- * @returns {Promise} Resolves with the fetched flags
63
- */
64
- list(options) {
65
- options = options || {};
66
- const params = {
67
- method: 'GET',
68
- service: 'userApps',
69
- resource: '/flags',
70
- options,
71
- qs: {
72
- state: 'flagged',
73
- },
74
- };
75
-
76
- return this.webex.request(params).then((res) => res.body.items);
77
- },
78
-
79
- /**
80
- * Gets an array of activities where the status is 200
81
- * @param {Object} flags
82
- * @returns {Promise<Object>} Resolves with the activities
83
- * TODO: this should be implemented as a batched request when migrating to the modular sdk
84
- */
85
- async mapToActivities(flags) {
86
- const mapUrlActivities = new Map();
87
-
88
- for (const flag of flags) {
89
- const convoUrlRegex = /(.*)\/activities\//;
90
- const activity = flag['flag-item'];
91
- const match = convoUrlRegex.exec(activity);
92
-
93
- if (match) {
94
- const url = match[1];
95
- let activities = mapUrlActivities.get(url);
96
-
97
- if (!activities) {
98
- activities = [];
99
- mapUrlActivities.set(url, activities);
100
- }
101
- activities.push(activity);
102
- } else {
103
- this.logger.warn(`The activity URL has a strange format (${activity}). Ignoring it.`);
104
- }
105
- }
106
-
107
- const responses = await Promise.all(
108
- Array.from(mapUrlActivities, async ([convoUrl, activityUrls]) => {
109
- const params = {
110
- method: 'POST',
111
- url: `${convoUrl}/bulk_activities_fetch`,
112
- body: {
113
- activityUrls,
114
- },
115
- };
116
-
117
- const res = await this.webex.request(params);
118
-
119
- return res.body.multistatus.reduce((activitiesArr, statusData) => {
120
- if (statusData.status === '200') {
121
- activitiesArr.push(statusData.data.activity);
122
- }
123
-
124
- return activitiesArr;
125
- }, []);
126
- })
127
- );
128
-
129
- return flatten(responses);
130
- },
131
-
132
- /**
133
- * Delete a flag
134
- * @param {Object} flag
135
- * @param {Object} options
136
- * @returns {Promise<Object>} Resolves with the flag deletion
137
- */
138
- delete(flag, options) {
139
- if (!flag.url) {
140
- return Promise.reject(new Error('`flag.url` is required'));
141
- }
142
- options = options || {};
143
- const params = {
144
- method: 'DELETE',
145
- options,
146
- uri: flag.url,
147
- };
148
-
149
- return this.request(params).then((res) => res.body);
150
- },
151
-
152
- /**
153
- * UnFlags an activity
154
- * @param {Object} flag
155
- * @param {Object} options
156
- * @returns {Promise<Object>} Resolves with the flag removal
157
- */
158
- unflag(flag, options) {
159
- if (!flag.url) {
160
- return Promise.reject(new Error('`flag.url` is required'));
161
- }
162
- options = options || {};
163
- const params = {
164
- method: 'PUT',
165
- uri: flag.url,
166
- options,
167
- body: {
168
- state: 'unflagged',
169
- },
170
- };
171
-
172
- return this.webex.request(params).then((res) => res.body);
173
- },
174
- });
175
-
176
- export default Flag;
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+ import {flatten} from 'lodash';
5
+ import * as WebexCore from '@webex/webex-core';
6
+
7
+ const Flag = WebexCore.WebexPlugin.extend({
8
+ namespace: 'Flag',
9
+
10
+ /**
11
+ * Archive a flag
12
+ * @param {Object} flag
13
+ * @param {Object} options
14
+ * @returns {Promise<Object>} Resolves with the flag archival
15
+ */
16
+ archive(flag, options) {
17
+ if (!flag.url) {
18
+ return Promise.reject(new Error('`flag.url` is required'));
19
+ }
20
+ options = options || {};
21
+ const params = {
22
+ method: 'PUT',
23
+ uri: flag.url,
24
+ options,
25
+ body: {
26
+ state: 'archived',
27
+ },
28
+ };
29
+
30
+ return this.webex.request(params).then((res) => res.body);
31
+ },
32
+
33
+ /**
34
+ * Flags an activity
35
+ * @param {Object} activity
36
+ * @param {Object} options
37
+ * @returns {Promise<Object>} Resolves with the flag creation
38
+ */
39
+ create(activity, options) {
40
+ if (!activity.url) {
41
+ return Promise.reject(new Error('`activity.url` is required'));
42
+ }
43
+ options = options || {};
44
+ const params = {
45
+ method: 'POST',
46
+ service: 'userApps',
47
+ resource: '/flags',
48
+ options,
49
+ body: {
50
+ 'conversation-url': activity.target.url,
51
+ 'flag-item': activity.url,
52
+ state: 'flagged',
53
+ },
54
+ };
55
+
56
+ return this.webex.request(params).then((res) => res.body);
57
+ },
58
+
59
+ /**
60
+ * Gets a list of Flags for a user
61
+ * @param {Object} options
62
+ * @returns {Promise} Resolves with the fetched flags
63
+ */
64
+ list(options) {
65
+ options = options || {};
66
+ const params = {
67
+ method: 'GET',
68
+ service: 'userApps',
69
+ resource: '/flags',
70
+ options,
71
+ qs: {
72
+ state: 'flagged',
73
+ },
74
+ };
75
+
76
+ return this.webex.request(params).then((res) => res.body.items);
77
+ },
78
+
79
+ /**
80
+ * Gets an array of activities where the status is 200
81
+ * @param {Object} flags
82
+ * @returns {Promise<Object>} Resolves with the activities
83
+ * TODO: this should be implemented as a batched request when migrating to the modular sdk
84
+ */
85
+ async mapToActivities(flags) {
86
+ const mapUrlActivities = new Map();
87
+
88
+ for (const flag of flags) {
89
+ const convoUrlRegex = /(.*)\/activities\//;
90
+ const activity = flag['flag-item'];
91
+ const match = convoUrlRegex.exec(activity);
92
+
93
+ if (match) {
94
+ const url = match[1];
95
+ let activities = mapUrlActivities.get(url);
96
+
97
+ if (!activities) {
98
+ activities = [];
99
+ mapUrlActivities.set(url, activities);
100
+ }
101
+ activities.push(activity);
102
+ } else {
103
+ this.logger.warn(`The activity URL has a strange format (${activity}). Ignoring it.`);
104
+ }
105
+ }
106
+
107
+ const responses = await Promise.all(
108
+ Array.from(mapUrlActivities, async ([convoUrl, activityUrls]) => {
109
+ const params = {
110
+ method: 'POST',
111
+ url: `${convoUrl}/bulk_activities_fetch`,
112
+ body: {
113
+ activityUrls,
114
+ },
115
+ };
116
+
117
+ const res = await this.webex.request(params);
118
+
119
+ return res.body.multistatus.reduce((activitiesArr, statusData) => {
120
+ if (statusData.status === '200') {
121
+ activitiesArr.push(statusData.data.activity);
122
+ }
123
+
124
+ return activitiesArr;
125
+ }, []);
126
+ })
127
+ );
128
+
129
+ return flatten(responses);
130
+ },
131
+
132
+ /**
133
+ * Delete a flag
134
+ * @param {Object} flag
135
+ * @param {Object} options
136
+ * @returns {Promise<Object>} Resolves with the flag deletion
137
+ */
138
+ delete(flag, options) {
139
+ if (!flag.url) {
140
+ return Promise.reject(new Error('`flag.url` is required'));
141
+ }
142
+ options = options || {};
143
+ const params = {
144
+ method: 'DELETE',
145
+ options,
146
+ uri: flag.url,
147
+ };
148
+
149
+ return this.request(params).then((res) => res.body);
150
+ },
151
+
152
+ /**
153
+ * UnFlags an activity
154
+ * @param {Object} flag
155
+ * @param {Object} options
156
+ * @returns {Promise<Object>} Resolves with the flag removal
157
+ */
158
+ unflag(flag, options) {
159
+ if (!flag.url) {
160
+ return Promise.reject(new Error('`flag.url` is required'));
161
+ }
162
+ options = options || {};
163
+ const params = {
164
+ method: 'PUT',
165
+ uri: flag.url,
166
+ options,
167
+ body: {
168
+ state: 'unflagged',
169
+ },
170
+ };
171
+
172
+ return this.webex.request(params).then((res) => res.body);
173
+ },
174
+ });
175
+
176
+ export default Flag;
package/src/index.js CHANGED
@@ -1,20 +1,20 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- import {registerInternalPlugin} from '@webex/webex-core';
6
-
7
- import '@webex/internal-plugin-conversation';
8
- import '@webex/internal-plugin-device';
9
- import Flag from './flag';
10
- import config from './config';
11
-
12
- registerInternalPlugin('flag', Flag, {
13
- config,
14
- payloadTransformer: {
15
- predicates: [],
16
- transforms: [],
17
- },
18
- });
19
-
20
- export {default} from './flag';
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import {registerInternalPlugin} from '@webex/webex-core';
6
+
7
+ import '@webex/internal-plugin-conversation';
8
+ import '@webex/internal-plugin-device';
9
+ import Flag from './flag';
10
+ import config from './config';
11
+
12
+ registerInternalPlugin('flag', Flag, {
13
+ config,
14
+ payloadTransformer: {
15
+ predicates: [],
16
+ transforms: [],
17
+ },
18
+ });
19
+
20
+ export {default} from './flag';
@@ -1,195 +1,195 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- import '@webex/internal-plugin-flag';
6
-
7
- import {assert} from '@webex/test-helper-chai';
8
- import WebexCore from '@webex/webex-core';
9
- import '@webex/internal-plugin-conversation';
10
- import {map, find} from 'lodash';
11
- import testUsers from '@webex/test-helper-test-users';
12
-
13
- describe('plugin-flag', function () {
14
- this.timeout(60000);
15
- describe('Flag', () => {
16
- let flagConversation, mccoy, participants, spock;
17
-
18
- beforeEach('create users', () =>
19
- testUsers.create({count: 2}).then((users) => {
20
- participants = [mccoy, spock] = users;
21
- spock.webex = new WebexCore({
22
- credentials: {
23
- authorization: users[0].token,
24
- },
25
- });
26
- mccoy.webex = new WebexCore({
27
- credentials: {
28
- authorization: users[1].token,
29
- },
30
- });
31
- })
32
- );
33
-
34
- beforeEach('connect spock to mercury', () => spock.webex.internal.mercury.connect());
35
- beforeEach('connect mccoy to mercury', () => mccoy.webex.internal.mercury.connect());
36
-
37
- afterEach(() =>
38
- Promise.all([
39
- spock && spock.webex.internal.mercury.disconnect(),
40
- mccoy && mccoy.webex.internal.mercury.disconnect(),
41
- ])
42
- );
43
-
44
- beforeEach('populate data', () =>
45
- spock.webex.internal.conversation
46
- .create({
47
- displayName: 'Test Flagging Room',
48
- participants,
49
- })
50
- .then((c) => {
51
- flagConversation = c;
52
-
53
- return mccoy.webex.internal.conversation.post(flagConversation, {
54
- displayName: 'Hi Dear, How are you?',
55
- });
56
- })
57
- .then(() =>
58
- spock.webex.internal.conversation.post(flagConversation, {
59
- displayName: 'Hey! I am doing well. How are you?',
60
- })
61
- )
62
- .then(() =>
63
- mccoy.webex.internal.conversation.post(flagConversation, {
64
- displayName: 'I am also doing well. Are you in for the party?',
65
- })
66
- )
67
- .then(() =>
68
- spock.webex.internal.conversation.post(flagConversation, {
69
- displayName: 'Yes, I am in.',
70
- })
71
- )
72
- .then(() => {
73
- assert.isDefined(flagConversation);
74
- const params = {
75
- activitiesLimit: 30,
76
- };
77
-
78
- return spock.webex.internal.conversation.get(flagConversation, params);
79
- })
80
- .then((conversation) => {
81
- // Removes the "create" activity.
82
- conversation.activities.items.shift();
83
- const comments = map(conversation.activities.items, 'object.displayName');
84
-
85
- assert.lengthOf(comments, 4);
86
- assert.equal(comments[0], 'Hi Dear, How are you?');
87
- assert.equal(comments[1], 'Hey! I am doing well. How are you?');
88
- assert.equal(comments[2], 'I am also doing well. Are you in for the party?');
89
- assert.equal(comments[3], 'Yes, I am in.');
90
- flagConversation = conversation;
91
- })
92
- );
93
-
94
- afterEach(() =>
95
- spock.webex.internal.flag
96
- .list()
97
- .then((flags) =>
98
- Promise.all(
99
- flags.map((flag) =>
100
- spock.webex.internal.flag.delete(flag).catch((reason) => console.warn(reason))
101
- )
102
- )
103
- )
104
- );
105
-
106
- describe('#create()', () => {
107
- it('flags the activity', () => {
108
- const flaggedActivity1 = flagConversation.activities.items[1];
109
-
110
- return spock.webex.internal.flag.create(flaggedActivity1).then((flagResponse1) => {
111
- assert.equal(flagResponse1.state, 'flagged');
112
- assert.equal(flagResponse1['flag-item'], flaggedActivity1.url);
113
- assert.equal(flagResponse1['conversation-url'], flaggedActivity1.target.url);
114
- });
115
- });
116
- });
117
-
118
- describe('#list()', () => {
119
- it('fetches the flag list', () =>
120
- spock.webex.internal.flag.list().then((flagList) => {
121
- assert.isArray(flagList);
122
- assert.lengthOf(flagList, 0);
123
- }));
124
- });
125
-
126
- describe('#mapToActivities()', () => {
127
- it('maps flags to activity', () => {
128
- const flaggedActivity1 = flagConversation.activities.items[1];
129
-
130
- return spock.webex.internal.flag.create(flaggedActivity1).then((flagResponse1) => {
131
- assert.equal(flagResponse1.state, 'flagged');
132
- const flags = [];
133
-
134
- flags.push(flagResponse1);
135
-
136
- return spock.webex.internal.flag.mapToActivities(flags).then((activities) => {
137
- const activity = activities[0];
138
-
139
- assert.equal(activity.object.displayName, 'Hey! I am doing well. How are you?');
140
- assert.isDefined(find(activities, {url: flagResponse1['flag-item']}));
141
- });
142
- });
143
- });
144
- });
145
-
146
- describe('#remove()', () => {
147
- it('removes the flag from activity', () => {
148
- const flaggedActivity1 = flagConversation.activities.items[1];
149
-
150
- return spock.webex.internal.flag
151
- .create(flaggedActivity1)
152
- .then((flagResponse1) => {
153
- assert.equal(flagResponse1.state, 'flagged');
154
-
155
- return spock.webex.internal.flag.delete(flagResponse1);
156
- })
157
- .then(() => spock.webex.internal.flag.list())
158
- .then((flagList) => {
159
- assert.isArray(flagList);
160
- assert.lengthOf(flagList, 0);
161
- });
162
- });
163
- });
164
-
165
- describe('#archive()', () => {
166
- it('archives the flag for an activity', () => {
167
- const flaggedActivity1 = flagConversation.activities.items[1];
168
-
169
- return spock.webex.internal.flag
170
- .create(flaggedActivity1)
171
- .then((flagResponse1) => {
172
- assert.equal(flagResponse1.state, 'flagged');
173
-
174
- return spock.webex.internal.flag.archive(flagResponse1);
175
- })
176
- .then((response) => assert.equal(response.state, 'archived'));
177
- });
178
- });
179
-
180
- describe('#unflag()', () => {
181
- it('unflag the flag for an activity', () => {
182
- const flaggedActivity1 = flagConversation.activities.items[1];
183
-
184
- return spock.webex.internal.flag
185
- .create(flaggedActivity1)
186
- .then((flagResponse1) => {
187
- assert.equal(flagResponse1.state, 'flagged');
188
-
189
- return spock.webex.internal.flag.unflag(flagResponse1);
190
- })
191
- .then((response) => assert.equal(response.state, 'unflagged'));
192
- });
193
- });
194
- });
195
- });
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import '@webex/internal-plugin-flag';
6
+
7
+ import {assert} from '@webex/test-helper-chai';
8
+ import WebexCore from '@webex/webex-core';
9
+ import '@webex/internal-plugin-conversation';
10
+ import {map, find} from 'lodash';
11
+ import testUsers from '@webex/test-helper-test-users';
12
+
13
+ describe('plugin-flag', function () {
14
+ this.timeout(60000);
15
+ describe('Flag', () => {
16
+ let flagConversation, mccoy, participants, spock;
17
+
18
+ beforeEach('create users', () =>
19
+ testUsers.create({count: 2}).then((users) => {
20
+ participants = [mccoy, spock] = users;
21
+ spock.webex = new WebexCore({
22
+ credentials: {
23
+ authorization: users[0].token,
24
+ },
25
+ });
26
+ mccoy.webex = new WebexCore({
27
+ credentials: {
28
+ authorization: users[1].token,
29
+ },
30
+ });
31
+ })
32
+ );
33
+
34
+ beforeEach('connect spock to mercury', () => spock.webex.internal.mercury.connect());
35
+ beforeEach('connect mccoy to mercury', () => mccoy.webex.internal.mercury.connect());
36
+
37
+ afterEach(() =>
38
+ Promise.all([
39
+ spock && spock.webex.internal.mercury.disconnect(),
40
+ mccoy && mccoy.webex.internal.mercury.disconnect(),
41
+ ])
42
+ );
43
+
44
+ beforeEach('populate data', () =>
45
+ spock.webex.internal.conversation
46
+ .create({
47
+ displayName: 'Test Flagging Room',
48
+ participants,
49
+ })
50
+ .then((c) => {
51
+ flagConversation = c;
52
+
53
+ return mccoy.webex.internal.conversation.post(flagConversation, {
54
+ displayName: 'Hi Dear, How are you?',
55
+ });
56
+ })
57
+ .then(() =>
58
+ spock.webex.internal.conversation.post(flagConversation, {
59
+ displayName: 'Hey! I am doing well. How are you?',
60
+ })
61
+ )
62
+ .then(() =>
63
+ mccoy.webex.internal.conversation.post(flagConversation, {
64
+ displayName: 'I am also doing well. Are you in for the party?',
65
+ })
66
+ )
67
+ .then(() =>
68
+ spock.webex.internal.conversation.post(flagConversation, {
69
+ displayName: 'Yes, I am in.',
70
+ })
71
+ )
72
+ .then(() => {
73
+ assert.isDefined(flagConversation);
74
+ const params = {
75
+ activitiesLimit: 30,
76
+ };
77
+
78
+ return spock.webex.internal.conversation.get(flagConversation, params);
79
+ })
80
+ .then((conversation) => {
81
+ // Removes the "create" activity.
82
+ conversation.activities.items.shift();
83
+ const comments = map(conversation.activities.items, 'object.displayName');
84
+
85
+ assert.lengthOf(comments, 4);
86
+ assert.equal(comments[0], 'Hi Dear, How are you?');
87
+ assert.equal(comments[1], 'Hey! I am doing well. How are you?');
88
+ assert.equal(comments[2], 'I am also doing well. Are you in for the party?');
89
+ assert.equal(comments[3], 'Yes, I am in.');
90
+ flagConversation = conversation;
91
+ })
92
+ );
93
+
94
+ afterEach(() =>
95
+ spock.webex.internal.flag
96
+ .list()
97
+ .then((flags) =>
98
+ Promise.all(
99
+ flags.map((flag) =>
100
+ spock.webex.internal.flag.delete(flag).catch((reason) => console.warn(reason))
101
+ )
102
+ )
103
+ )
104
+ );
105
+
106
+ describe('#create()', () => {
107
+ it('flags the activity', () => {
108
+ const flaggedActivity1 = flagConversation.activities.items[1];
109
+
110
+ return spock.webex.internal.flag.create(flaggedActivity1).then((flagResponse1) => {
111
+ assert.equal(flagResponse1.state, 'flagged');
112
+ assert.equal(flagResponse1['flag-item'], flaggedActivity1.url);
113
+ assert.equal(flagResponse1['conversation-url'], flaggedActivity1.target.url);
114
+ });
115
+ });
116
+ });
117
+
118
+ describe('#list()', () => {
119
+ it('fetches the flag list', () =>
120
+ spock.webex.internal.flag.list().then((flagList) => {
121
+ assert.isArray(flagList);
122
+ assert.lengthOf(flagList, 0);
123
+ }));
124
+ });
125
+
126
+ describe('#mapToActivities()', () => {
127
+ it('maps flags to activity', () => {
128
+ const flaggedActivity1 = flagConversation.activities.items[1];
129
+
130
+ return spock.webex.internal.flag.create(flaggedActivity1).then((flagResponse1) => {
131
+ assert.equal(flagResponse1.state, 'flagged');
132
+ const flags = [];
133
+
134
+ flags.push(flagResponse1);
135
+
136
+ return spock.webex.internal.flag.mapToActivities(flags).then((activities) => {
137
+ const activity = activities[0];
138
+
139
+ assert.equal(activity.object.displayName, 'Hey! I am doing well. How are you?');
140
+ assert.isDefined(find(activities, {url: flagResponse1['flag-item']}));
141
+ });
142
+ });
143
+ });
144
+ });
145
+
146
+ describe('#remove()', () => {
147
+ it('removes the flag from activity', () => {
148
+ const flaggedActivity1 = flagConversation.activities.items[1];
149
+
150
+ return spock.webex.internal.flag
151
+ .create(flaggedActivity1)
152
+ .then((flagResponse1) => {
153
+ assert.equal(flagResponse1.state, 'flagged');
154
+
155
+ return spock.webex.internal.flag.delete(flagResponse1);
156
+ })
157
+ .then(() => spock.webex.internal.flag.list())
158
+ .then((flagList) => {
159
+ assert.isArray(flagList);
160
+ assert.lengthOf(flagList, 0);
161
+ });
162
+ });
163
+ });
164
+
165
+ describe('#archive()', () => {
166
+ it('archives the flag for an activity', () => {
167
+ const flaggedActivity1 = flagConversation.activities.items[1];
168
+
169
+ return spock.webex.internal.flag
170
+ .create(flaggedActivity1)
171
+ .then((flagResponse1) => {
172
+ assert.equal(flagResponse1.state, 'flagged');
173
+
174
+ return spock.webex.internal.flag.archive(flagResponse1);
175
+ })
176
+ .then((response) => assert.equal(response.state, 'archived'));
177
+ });
178
+ });
179
+
180
+ describe('#unflag()', () => {
181
+ it('unflag the flag for an activity', () => {
182
+ const flaggedActivity1 = flagConversation.activities.items[1];
183
+
184
+ return spock.webex.internal.flag
185
+ .create(flaggedActivity1)
186
+ .then((flagResponse1) => {
187
+ assert.equal(flagResponse1.state, 'flagged');
188
+
189
+ return spock.webex.internal.flag.unflag(flagResponse1);
190
+ })
191
+ .then((response) => assert.equal(response.state, 'unflagged'));
192
+ });
193
+ });
194
+ });
195
+ });
@@ -1,41 +1,41 @@
1
- /*!
2
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
- */
4
-
5
- import {assert} from '@webex/test-helper-chai';
6
- import Flag from '@webex/internal-plugin-flag';
7
- import MockWebex from '@webex/test-helper-mock-webex';
8
-
9
- describe('plugin-flag', () => {
10
- describe('Flag', () => {
11
- let webex;
12
-
13
- beforeEach(() => {
14
- webex = new MockWebex({
15
- children: {
16
- flag: Flag,
17
- },
18
- });
19
- });
20
-
21
- describe('#flag()', () => {
22
- it('requires an activity URL', () =>
23
- assert.isRejected(webex.internal.flag.create({}, {}), /`activity.url` is required/));
24
- });
25
-
26
- describe('#unflag()', () => {
27
- it('requires a Flag Id', () =>
28
- assert.isRejected(webex.internal.flag.unflag({}, {}), /`flag.url` is required/));
29
- });
30
-
31
- describe('#archive()', () => {
32
- it('requires a Flag Id', () =>
33
- assert.isRejected(webex.internal.flag.archive({}, {}), /`flag.url` is required/));
34
- });
35
-
36
- describe('#remove()', () => {
37
- it('requires a Flag Id', () =>
38
- assert.isRejected(webex.internal.flag.delete({}, {}), /`flag.url` is required/));
39
- });
40
- });
41
- });
1
+ /*!
2
+ * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
3
+ */
4
+
5
+ import {assert} from '@webex/test-helper-chai';
6
+ import Flag from '@webex/internal-plugin-flag';
7
+ import MockWebex from '@webex/test-helper-mock-webex';
8
+
9
+ describe('plugin-flag', () => {
10
+ describe('Flag', () => {
11
+ let webex;
12
+
13
+ beforeEach(() => {
14
+ webex = new MockWebex({
15
+ children: {
16
+ flag: Flag,
17
+ },
18
+ });
19
+ });
20
+
21
+ describe('#flag()', () => {
22
+ it('requires an activity URL', () =>
23
+ assert.isRejected(webex.internal.flag.create({}, {}), /`activity.url` is required/));
24
+ });
25
+
26
+ describe('#unflag()', () => {
27
+ it('requires a Flag Id', () =>
28
+ assert.isRejected(webex.internal.flag.unflag({}, {}), /`flag.url` is required/));
29
+ });
30
+
31
+ describe('#archive()', () => {
32
+ it('requires a Flag Id', () =>
33
+ assert.isRejected(webex.internal.flag.archive({}, {}), /`flag.url` is required/));
34
+ });
35
+
36
+ describe('#remove()', () => {
37
+ it('requires a Flag Id', () =>
38
+ assert.isRejected(webex.internal.flag.delete({}, {}), /`flag.url` is required/));
39
+ });
40
+ });
41
+ });