@webex/internal-plugin-calendar 2.60.1-next.9 → 2.60.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -68,5 +68,6 @@ var DecryptHelper = {
68
68
  return _promise.default.all([].concat(calendarFreeBusyItems));
69
69
  }
70
70
  };
71
- var _default = exports.default = DecryptHelper;
71
+ var _default = DecryptHelper;
72
+ exports.default = _default;
72
73
  //# sourceMappingURL=calendar.decrypt.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_decryptTextProp","ctx","name","key","object","_promise","default","resolve","webex","internal","encryption","decryptText","uri","then","plaintext","DecryptHelper","decryptSchedulerDataResponse","data","encryptionKeyUrl","decryptedParticipants","encryptedParticipants","map","participant","all","decryptedScheduleFor","_values","encryptedScheduleFor","flatMap","item","decryptedMeetingJoinInfo","meetingJoinInfo","decryptedOrganizer","encryptedOrganizer","concat","decryptFreeBusyResponse","calendarFreeBusyScheduleResponse","calendarFreeBusyItems","calendarFreeBusyItem","_default","exports"],"sources":["calendar.decrypt.helper.js"],"sourcesContent":["const _decryptTextProp = (ctx, name, key, object) => {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .decryptText(key.uri || key, object[name])\n .then((plaintext) => {\n object[name] = plaintext;\n });\n};\n\nconst DecryptHelper = {\n /**\n * Decrypt scheduler data response\n * @param {object} [ctx] context\n * @param {object} [data] scheduler data response\n * @returns {Promise} Resolves with decrypted response\n * */\n decryptSchedulerDataResponse: (ctx, data) => {\n if (!data) {\n return Promise.resolve();\n }\n\n if (!data.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n // Decrypt participant properties if meeting object contains participants\n const decryptedParticipants = data.encryptedParticipants\n ? data.encryptedParticipants.map((participant) =>\n Promise.all([\n _decryptTextProp(ctx, 'encryptedEmailAddress', data.encryptionKeyUrl, participant),\n _decryptTextProp(ctx, 'encryptedName', data.encryptionKeyUrl, participant),\n ])\n )\n : [];\n\n // Decrypt encryptedScheduleFor properties if meeting object contains SOB\n const decryptedScheduleFor = Promise.all(\n Object.values(data.encryptedScheduleFor || {}).flatMap((item) => [\n _decryptTextProp(ctx, 'encryptedEmail', data.encryptionKeyUrl, item),\n _decryptTextProp(ctx, 'encryptedDisplayName', data.encryptionKeyUrl, item),\n ])\n );\n\n // Decrypt meetingJoinInfo properties if meeting object contains meetingJoinInfo\n const decryptedMeetingJoinInfo = data.meetingJoinInfo\n ? Promise.all([\n _decryptTextProp(ctx, 'meetingJoinURI', data.encryptionKeyUrl, data.meetingJoinInfo),\n _decryptTextProp(ctx, 'meetingJoinURL', data.encryptionKeyUrl, data.meetingJoinInfo),\n ])\n : [];\n\n const decryptedOrganizer = data.encryptedOrganizer\n ? Promise.all([\n _decryptTextProp(\n ctx,\n 'encryptedEmailAddress',\n data.encryptionKeyUrl,\n data.encryptedOrganizer\n ),\n _decryptTextProp(ctx, 'encryptedName', data.encryptionKeyUrl, data.encryptedOrganizer),\n ])\n : [];\n\n return Promise.all(\n [\n _decryptTextProp(ctx, 'encryptedSubject', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'encryptedLocation', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'encryptedNotes', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'webexURI', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'webexURL', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'spaceMeetURL', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'spaceURI', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'spaceURL', data.encryptionKeyUrl, data),\n ].concat(\n decryptedOrganizer,\n decryptedParticipants,\n decryptedScheduleFor,\n decryptedMeetingJoinInfo\n )\n );\n },\n /**\n * Decrypt free-busy response\n * @param {object} [ctx] context\n * @param {object} [data] free-busy response\n * @returns {Promise} Resolves with decrypted response\n * */\n decryptFreeBusyResponse: (ctx, data) => {\n if (!data) {\n return Promise.resolve();\n }\n\n if (!data.calendarFreeBusyScheduleResponse) {\n return Promise.resolve();\n }\n\n if (!data.calendarFreeBusyScheduleResponse.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n const calendarFreeBusyItems = data.calendarFreeBusyScheduleResponse.calendarFreeBusyItems\n ? data.calendarFreeBusyScheduleResponse.calendarFreeBusyItems.map((calendarFreeBusyItem) =>\n Promise.all([\n _decryptTextProp(\n ctx,\n 'email',\n data.calendarFreeBusyScheduleResponse.encryptionKeyUrl,\n calendarFreeBusyItem\n ),\n ])\n )\n : [];\n\n return Promise.all([].concat(calendarFreeBusyItems));\n },\n};\n\nexport default DecryptHelper;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_decryptTextProp","ctx","name","key","object","_promise","default","resolve","webex","internal","encryption","decryptText","uri","then","plaintext","DecryptHelper","decryptSchedulerDataResponse","data","encryptionKeyUrl","decryptedParticipants","encryptedParticipants","map","participant","all","decryptedScheduleFor","_values","encryptedScheduleFor","flatMap","item","decryptedMeetingJoinInfo","meetingJoinInfo","decryptedOrganizer","encryptedOrganizer","concat","decryptFreeBusyResponse","calendarFreeBusyScheduleResponse","calendarFreeBusyItems","calendarFreeBusyItem","_default","exports"],"sources":["calendar.decrypt.helper.js"],"sourcesContent":["const _decryptTextProp = (ctx, name, key, object) => {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .decryptText(key.uri || key, object[name])\n .then((plaintext) => {\n object[name] = plaintext;\n });\n};\n\nconst DecryptHelper = {\n /**\n * Decrypt scheduler data response\n * @param {object} [ctx] context\n * @param {object} [data] scheduler data response\n * @returns {Promise} Resolves with decrypted response\n * */\n decryptSchedulerDataResponse: (ctx, data) => {\n if (!data) {\n return Promise.resolve();\n }\n\n if (!data.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n // Decrypt participant properties if meeting object contains participants\n const decryptedParticipants = data.encryptedParticipants\n ? data.encryptedParticipants.map((participant) =>\n Promise.all([\n _decryptTextProp(ctx, 'encryptedEmailAddress', data.encryptionKeyUrl, participant),\n _decryptTextProp(ctx, 'encryptedName', data.encryptionKeyUrl, participant),\n ])\n )\n : [];\n\n // Decrypt encryptedScheduleFor properties if meeting object contains SOB\n const decryptedScheduleFor = Promise.all(\n Object.values(data.encryptedScheduleFor || {}).flatMap((item) => [\n _decryptTextProp(ctx, 'encryptedEmail', data.encryptionKeyUrl, item),\n _decryptTextProp(ctx, 'encryptedDisplayName', data.encryptionKeyUrl, item),\n ])\n );\n\n // Decrypt meetingJoinInfo properties if meeting object contains meetingJoinInfo\n const decryptedMeetingJoinInfo = data.meetingJoinInfo\n ? Promise.all([\n _decryptTextProp(ctx, 'meetingJoinURI', data.encryptionKeyUrl, data.meetingJoinInfo),\n _decryptTextProp(ctx, 'meetingJoinURL', data.encryptionKeyUrl, data.meetingJoinInfo),\n ])\n : [];\n\n const decryptedOrganizer = data.encryptedOrganizer\n ? Promise.all([\n _decryptTextProp(\n ctx,\n 'encryptedEmailAddress',\n data.encryptionKeyUrl,\n data.encryptedOrganizer\n ),\n _decryptTextProp(ctx, 'encryptedName', data.encryptionKeyUrl, data.encryptedOrganizer),\n ])\n : [];\n\n return Promise.all(\n [\n _decryptTextProp(ctx, 'encryptedSubject', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'encryptedLocation', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'encryptedNotes', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'webexURI', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'webexURL', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'spaceMeetURL', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'spaceURI', data.encryptionKeyUrl, data),\n _decryptTextProp(ctx, 'spaceURL', data.encryptionKeyUrl, data),\n ].concat(\n decryptedOrganizer,\n decryptedParticipants,\n decryptedScheduleFor,\n decryptedMeetingJoinInfo\n )\n );\n },\n /**\n * Decrypt free-busy response\n * @param {object} [ctx] context\n * @param {object} [data] free-busy response\n * @returns {Promise} Resolves with decrypted response\n * */\n decryptFreeBusyResponse: (ctx, data) => {\n if (!data) {\n return Promise.resolve();\n }\n\n if (!data.calendarFreeBusyScheduleResponse) {\n return Promise.resolve();\n }\n\n if (!data.calendarFreeBusyScheduleResponse.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n const calendarFreeBusyItems = data.calendarFreeBusyScheduleResponse.calendarFreeBusyItems\n ? data.calendarFreeBusyScheduleResponse.calendarFreeBusyItems.map((calendarFreeBusyItem) =>\n Promise.all([\n _decryptTextProp(\n ctx,\n 'email',\n data.calendarFreeBusyScheduleResponse.encryptionKeyUrl,\n calendarFreeBusyItem\n ),\n ])\n )\n : [];\n\n return Promise.all([].concat(calendarFreeBusyItems));\n },\n};\n\nexport default DecryptHelper;\n"],"mappings":"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"}
@@ -8,8 +8,8 @@ _Object$defineProperty(exports, "__esModule", {
8
8
  exports.default = void 0;
9
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
10
  var _assign = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/assign"));
11
- var _isArray = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
12
- var _lodash = require("lodash");
11
+ var _isArray2 = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/array/is-array"));
12
+ var _isArray3 = _interopRequireDefault(require("lodash/isArray"));
13
13
  var _encryptTextProp = function _encryptTextProp(ctx, name, key, object) {
14
14
  if (!object[name]) {
15
15
  return _promise.default.resolve();
@@ -32,7 +32,7 @@ var _encryptFreeBusyPayload = function _encryptFreeBusyPayload(data, ctx) {
32
32
  encryptionKeyUrl: ctx.encryptionKeyUrl
33
33
  });
34
34
  var promises = [];
35
- if (data.emails && (0, _isArray.default)(data.emails)) {
35
+ if (data.emails && (0, _isArray2.default)(data.emails)) {
36
36
  data.emails.map(function (item, index) {
37
37
  return promises.push(ctx.webex.internal.encryption.encryptText(data.encryptionKeyUrl, item).then(function (encryptText) {
38
38
  data.emails[index] = encryptText;
@@ -55,7 +55,7 @@ var EncryptHelper = {
55
55
  return ctx.webex.internal.encryption.kms.createUnboundKeys({
56
56
  count: 1
57
57
  }).then(function (keys) {
58
- var key = (0, _lodash.isArray)(keys) ? keys[0] : keys;
58
+ var key = (0, _isArray3.default)(keys) ? keys[0] : keys;
59
59
  ctx.encryptionKeyUrl = key.uri;
60
60
  return _encryptCalendarEventPayload(data, ctx);
61
61
  });
@@ -68,7 +68,7 @@ var EncryptHelper = {
68
68
  * @returns {Promise} Resolves with encrypted request payload
69
69
  * */
70
70
  encryptFreeBusyRequest: function encryptFreeBusyRequest(ctx, data) {
71
- if (!data.emails || !(0, _isArray.default)(data.emails)) {
71
+ if (!data.emails || !(0, _isArray2.default)(data.emails)) {
72
72
  return _promise.default.resolve();
73
73
  }
74
74
  if (ctx.encryptionKeyUrl) {
@@ -77,11 +77,12 @@ var EncryptHelper = {
77
77
  return ctx.webex.internal.encryption.kms.createUnboundKeys({
78
78
  count: 1
79
79
  }).then(function (keys) {
80
- var key = (0, _lodash.isArray)(keys) ? keys[0] : keys;
80
+ var key = (0, _isArray3.default)(keys) ? keys[0] : keys;
81
81
  ctx.encryptionKeyUrl = key.uri;
82
82
  return _encryptFreeBusyPayload(data, ctx);
83
83
  });
84
84
  }
85
85
  };
86
- var _default = exports.default = EncryptHelper;
86
+ var _default = EncryptHelper;
87
+ exports.default = _default;
87
88
  //# sourceMappingURL=calendar.encrypt.helper.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_encryptTextProp","ctx","name","key","object","_promise","default","resolve","webex","internal","encryption","encryptText","uri","then","ciphertext","_encryptCalendarEventPayload","data","_assign","encryptionKeyUrl","encryptedAttendees","attendees","map","attendee","all","concat","_encryptFreeBusyPayload","promises","emails","_isArray","item","index","push","EncryptHelper","encryptCalendarEventRequest","kms","createUnboundKeys","count","keys","isArray","encryptFreeBusyRequest","_default","exports"],"sources":["calendar.encrypt.helper.js"],"sourcesContent":["import {isArray} from 'lodash';\n\nconst _encryptTextProp = (ctx, name, key, object) => {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .encryptText(key.uri || key, object[name])\n .then((ciphertext) => {\n object[name] = ciphertext;\n });\n};\n\nconst _encryptCalendarEventPayload = (data, ctx) => {\n Object.assign(data, {encryptionKeyUrl: ctx.encryptionKeyUrl});\n\n const encryptedAttendees = data.attendees\n ? data.attendees.map((attendee) =>\n Promise.all([\n _encryptTextProp(ctx, 'displayName', data.encryptionKeyUrl, attendee),\n _encryptTextProp(ctx, 'email', data.encryptionKeyUrl, attendee),\n ])\n )\n : [];\n\n return Promise.all(\n [\n _encryptTextProp(ctx, 'subject', data.encryptionKeyUrl, data),\n _encryptTextProp(ctx, 'notes', data.encryptionKeyUrl, data),\n _encryptTextProp(ctx, 'webexOptions', data.encryptionKeyUrl, data),\n ].concat([encryptedAttendees])\n );\n};\n\nconst _encryptFreeBusyPayload = (data, ctx) => {\n Object.assign(data, {encryptionKeyUrl: ctx.encryptionKeyUrl});\n\n const promises = [];\n if (data.emails && Array.isArray(data.emails)) {\n data.emails.map((item, index) =>\n promises.push(\n ctx.webex.internal.encryption\n .encryptText(data.encryptionKeyUrl, item)\n .then((encryptText) => {\n data.emails[index] = encryptText;\n })\n )\n );\n }\n\n return Promise.all(promises);\n};\n\nconst EncryptHelper = {\n /**\n * Encrypt create / update calendar event request payload\n * @param {object} [ctx] context\n * @param {object} [data] meeting payload data\n * @returns {Promise} Resolves with encrypted request payload\n * */\n encryptCalendarEventRequest: (ctx, data) => {\n if (ctx.encryptionKeyUrl) {\n return _encryptCalendarEventPayload(data, ctx);\n }\n\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = isArray(keys) ? keys[0] : keys;\n ctx.encryptionKeyUrl = key.uri;\n\n return _encryptCalendarEventPayload(data, ctx);\n });\n },\n /**\n * Encrypt free-busy request payload, if request payload only includes the sensitive data, like email, need to encrypt these reqeust parameters, and playload includes encrypt url.\n * Otherwise, don't encrypt playload and without encrypt url,Due to calendar serivce will vaild both encrypt url and sensitive that are both present. if not, will return 400 bad reqeust to caller.\n * @param {object} [ctx] context\n * @param {object} [data] free busy payload data\n * @returns {Promise} Resolves with encrypted request payload\n * */\n encryptFreeBusyRequest: (ctx, data) => {\n if (!data.emails || !Array.isArray(data.emails)) {\n return Promise.resolve();\n }\n if (ctx.encryptionKeyUrl) {\n return _encryptFreeBusyPayload(data, ctx);\n }\n\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = isArray(keys) ? keys[0] : keys;\n ctx.encryptionKeyUrl = key.uri;\n\n return _encryptFreeBusyPayload(data, ctx);\n });\n },\n};\n\nexport default EncryptHelper;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_encryptTextProp","ctx","name","key","object","_promise","default","resolve","webex","internal","encryption","encryptText","uri","then","ciphertext","_encryptCalendarEventPayload","data","_assign","encryptionKeyUrl","encryptedAttendees","attendees","map","attendee","all","concat","_encryptFreeBusyPayload","promises","emails","_isArray2","item","index","push","EncryptHelper","encryptCalendarEventRequest","kms","createUnboundKeys","count","keys","_isArray3","encryptFreeBusyRequest","_default","exports"],"sources":["calendar.encrypt.helper.js"],"sourcesContent":["import {isArray} from 'lodash';\n\nconst _encryptTextProp = (ctx, name, key, object) => {\n if (!object[name]) {\n return Promise.resolve();\n }\n\n return ctx.webex.internal.encryption\n .encryptText(key.uri || key, object[name])\n .then((ciphertext) => {\n object[name] = ciphertext;\n });\n};\n\nconst _encryptCalendarEventPayload = (data, ctx) => {\n Object.assign(data, {encryptionKeyUrl: ctx.encryptionKeyUrl});\n\n const encryptedAttendees = data.attendees\n ? data.attendees.map((attendee) =>\n Promise.all([\n _encryptTextProp(ctx, 'displayName', data.encryptionKeyUrl, attendee),\n _encryptTextProp(ctx, 'email', data.encryptionKeyUrl, attendee),\n ])\n )\n : [];\n\n return Promise.all(\n [\n _encryptTextProp(ctx, 'subject', data.encryptionKeyUrl, data),\n _encryptTextProp(ctx, 'notes', data.encryptionKeyUrl, data),\n _encryptTextProp(ctx, 'webexOptions', data.encryptionKeyUrl, data),\n ].concat([encryptedAttendees])\n );\n};\n\nconst _encryptFreeBusyPayload = (data, ctx) => {\n Object.assign(data, {encryptionKeyUrl: ctx.encryptionKeyUrl});\n\n const promises = [];\n if (data.emails && Array.isArray(data.emails)) {\n data.emails.map((item, index) =>\n promises.push(\n ctx.webex.internal.encryption\n .encryptText(data.encryptionKeyUrl, item)\n .then((encryptText) => {\n data.emails[index] = encryptText;\n })\n )\n );\n }\n\n return Promise.all(promises);\n};\n\nconst EncryptHelper = {\n /**\n * Encrypt create / update calendar event request payload\n * @param {object} [ctx] context\n * @param {object} [data] meeting payload data\n * @returns {Promise} Resolves with encrypted request payload\n * */\n encryptCalendarEventRequest: (ctx, data) => {\n if (ctx.encryptionKeyUrl) {\n return _encryptCalendarEventPayload(data, ctx);\n }\n\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = isArray(keys) ? keys[0] : keys;\n ctx.encryptionKeyUrl = key.uri;\n\n return _encryptCalendarEventPayload(data, ctx);\n });\n },\n /**\n * Encrypt free-busy request payload, if request payload only includes the sensitive data, like email, need to encrypt these reqeust parameters, and playload includes encrypt url.\n * Otherwise, don't encrypt playload and without encrypt url,Due to calendar serivce will vaild both encrypt url and sensitive that are both present. if not, will return 400 bad reqeust to caller.\n * @param {object} [ctx] context\n * @param {object} [data] free busy payload data\n * @returns {Promise} Resolves with encrypted request payload\n * */\n encryptFreeBusyRequest: (ctx, data) => {\n if (!data.emails || !Array.isArray(data.emails)) {\n return Promise.resolve();\n }\n if (ctx.encryptionKeyUrl) {\n return _encryptFreeBusyPayload(data, ctx);\n }\n\n return ctx.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = isArray(keys) ? keys[0] : keys;\n ctx.encryptionKeyUrl = key.uri;\n\n return _encryptFreeBusyPayload(data, ctx);\n });\n },\n};\n\nexport default EncryptHelper;\n"],"mappings":"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"}
package/dist/calendar.js CHANGED
@@ -7,57 +7,13 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
10
- var _lodash = require("lodash");
10
+ var _isArray2 = _interopRequireDefault(require("lodash/isArray"));
11
11
  var _common = require("@webex/common");
12
12
  var _webexCore = require("@webex/webex-core");
13
13
  var _collection = _interopRequireDefault(require("./collection"));
14
14
  var _constants = require("./constants");
15
15
  var _calendarEncrypt = _interopRequireDefault(require("./calendar.encrypt.helper"));
16
16
  var _calendarDecrypt = _interopRequireDefault(require("./calendar.decrypt.helper"));
17
- /*!
18
- * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
19
- */
20
-
21
- /**
22
- * Calendar Item Create Event
23
- * Emitted when a calendar item has been added
24
- * @event calendar:meeting:create
25
- * @instance
26
- * @memberof Calendar
27
- */
28
-
29
- /**
30
- * Calendar Item Update Event
31
- * Emitted when a calendar item has been updated
32
- * @event calendar:meeting:update
33
- * @instance
34
- * @memberof Calendar
35
- */
36
-
37
- /**
38
- * Calendar Item Update Event
39
- * Emitted when a calendar item has been deleted
40
- * @event calendar:meeting:delete
41
- * @instance
42
- * @memberof Calendar
43
- */
44
-
45
- /**
46
- * Calendar Registered Event
47
- * Emitted when the calendar instance has been registered and listening
48
- * @event calendar:registered
49
- * @instance
50
- * @memberof Calendar
51
- */
52
-
53
- /**
54
- * Calendar Registered Event
55
- * Emitted when the calendar instance has been registered and listening
56
- * @event calendar:unregistered
57
- * @instance
58
- * @memberof Calendar
59
- */
60
-
61
17
  var Calendar = _webexCore.WebexPlugin.extend({
62
18
  namespace: 'Calendar',
63
19
  /**
@@ -75,52 +31,33 @@ var Calendar = _webexCore.WebexPlugin.extend({
75
31
  * Cache KMS encryptionKeyUrl
76
32
  * */
77
33
  encryptionKeyUrl: null,
78
- /**
79
- * Pre-fetch a KMS encryption key url to improve performance.
80
- * Waits for the user to be authorized and skips if an unverified guest.
81
- * @private
82
- * @returns {void}
83
- */
84
- prefetchEncryptionKey: function prefetchEncryptionKey() {
85
- var _this = this;
86
- if (!this.webex.canAuthorize) {
87
- this.listenToOnce(this.webex, 'change:canAuthorize', function () {
88
- _this.prefetchEncryptionKey();
89
- });
90
- return;
91
- }
92
- if (this.webex.credentials.isUnverifiedGuest) {
93
- return;
94
- }
95
- this.webex.internal.encryption.kms.createUnboundKeys({
96
- count: 1
97
- }).then(function (keys) {
98
- var key = (0, _lodash.isArray)(keys) ? keys[0] : keys;
99
- _this.encryptionKeyUrl = key ? key.uri : null;
100
- _this.logger.info('calendar->bind a KMS encryption key url');
101
- _this.webex.internal.encryption.getKey(_this.encryptionKeyUrl, {
102
- onBehalfOf: null
103
- }).then(function (retrievedKey) {
104
- _this.encryptionKeyUrl = retrievedKey ? retrievedKey.uri : null;
105
- _this.logger.info('calendar->retrieve the KMS encryption key url and cache it');
106
- });
107
- });
108
- },
109
34
  /**
110
35
  * WebexPlugin initialize method. This triggers once Webex has completed its
111
36
  * initialization workflow.
112
37
  *
113
38
  * If the plugin is meant to perform startup actions, place them in this
114
39
  * `initialize()` method instead of the `constructor()` method.
115
- * @private
116
40
  * @returns {void}
117
41
  */
118
42
  initialize: function initialize() {
119
- var _this2 = this;
43
+ var _this = this;
120
44
  // Used to perform actions after webex is fully qualified and ready for
121
45
  // operation.
122
46
  this.listenToOnce(this.webex, 'ready', function () {
123
- _this2.prefetchEncryptionKey();
47
+ // Pre-fetch a KMS encryption key url to improve performance
48
+ _this.webex.internal.encryption.kms.createUnboundKeys({
49
+ count: 1
50
+ }).then(function (keys) {
51
+ var key = (0, _isArray2.default)(keys) ? keys[0] : keys;
52
+ _this.encryptionKeyUrl = key ? key.uri : null;
53
+ _this.logger.info('calendar->bind a KMS encryption key url');
54
+ _this.webex.internal.encryption.getKey(_this.encryptionKeyUrl, {
55
+ onBehalfOf: null
56
+ }).then(function (retrievedKey) {
57
+ _this.encryptionKeyUrl = retrievedKey ? retrievedKey.uri : null;
58
+ _this.logger.info('calendar->retrieve the KMS encryption key url and cache it');
59
+ });
60
+ });
124
61
  });
125
62
  },
126
63
  /**
@@ -131,7 +68,7 @@ var Calendar = _webexCore.WebexPlugin.extend({
131
68
  * @memberof Calendar
132
69
  */
133
70
  register: function register() {
134
- var _this3 = this;
71
+ var _this2 = this;
135
72
  if (!this.webex.canAuthorize) {
136
73
  this.logger.error('calendar->register#ERROR, Unable to register, SDK cannot authorize');
137
74
  return _promise.default.reject(new Error('SDK cannot authorize'));
@@ -141,13 +78,13 @@ var Calendar = _webexCore.WebexPlugin.extend({
141
78
  return _promise.default.resolve();
142
79
  }
143
80
  return this.webex.internal.device.register().then(function () {
144
- return _this3.webex.internal.mercury.connect();
81
+ return _this2.webex.internal.mercury.connect();
145
82
  }).then(function () {
146
- _this3.listenForEvents();
147
- _this3.trigger(_constants.CALENDAR_REGISTERED);
148
- _this3.registered = true;
83
+ _this2.listenForEvents();
84
+ _this2.trigger(_constants.CALENDAR_REGISTERED);
85
+ _this2.registered = true;
149
86
  }).catch(function (error) {
150
- _this3.logger.error("calendar->register#ERROR, Unable to register, ".concat(error.message));
87
+ _this2.logger.error("calendar->register#ERROR, Unable to register, ".concat(error.message));
151
88
  return _promise.default.reject(error);
152
89
  });
153
90
  },
@@ -160,17 +97,17 @@ var Calendar = _webexCore.WebexPlugin.extend({
160
97
  * @memberof Calendar
161
98
  */
162
99
  unregister: function unregister() {
163
- var _this4 = this;
100
+ var _this3 = this;
164
101
  if (!this.registered) {
165
102
  this.logger.info('calendar->unregister#INFO, Calendar plugin already unregistered');
166
103
  return _promise.default.resolve();
167
104
  }
168
105
  this.stopListeningForEvents();
169
106
  return this.webex.internal.mercury.disconnect().then(function () {
170
- return _this4.webex.internal.device.unregister();
107
+ return _this3.webex.internal.device.unregister();
171
108
  }).then(function () {
172
- _this4.trigger(_constants.CALENDAR_UNREGISTERED);
173
- _this4.registered = false;
109
+ _this3.trigger(_constants.CALENDAR_UNREGISTERED);
110
+ _this3.registered = false;
174
111
  });
175
112
  },
176
113
  /**
@@ -179,25 +116,25 @@ var Calendar = _webexCore.WebexPlugin.extend({
179
116
  * @private
180
117
  */
181
118
  listenForEvents: function listenForEvents() {
182
- var _this5 = this;
119
+ var _this4 = this;
183
120
  // Calendar mercury events listener
184
121
  this.webex.internal.mercury.on('event:calendar.meeting.create', function (envelope) {
185
- _this5._handleCreate(envelope.data);
122
+ _this4._handleCreate(envelope.data);
186
123
  });
187
124
  this.webex.internal.mercury.on('event:calendar.meeting.update', function (envelope) {
188
- _this5._handleUpdate(envelope.data);
125
+ _this4._handleUpdate(envelope.data);
189
126
  });
190
127
  this.webex.internal.mercury.on('event:calendar.meeting.create.minimal', function (envelope) {
191
- _this5._handleCreate(envelope.data);
128
+ _this4._handleCreate(envelope.data);
192
129
  });
193
130
  this.webex.internal.mercury.on('event:calendar.meeting.update.minimal', function (envelope) {
194
- _this5._handleUpdate(envelope.data);
131
+ _this4._handleUpdate(envelope.data);
195
132
  });
196
133
  this.webex.internal.mercury.on('event:calendar.meeting.delete', function (envelope) {
197
- _this5._handleDelete(envelope.data);
134
+ _this4._handleDelete(envelope.data);
198
135
  });
199
136
  this.webex.internal.mercury.on('event:calendar.free_busy', function (envelope) {
200
- _this5._handleFreeBusy(envelope.data);
137
+ _this4._handleFreeBusy(envelope.data);
201
138
  });
202
139
  },
203
140
  /**
@@ -250,20 +187,20 @@ var Calendar = _webexCore.WebexPlugin.extend({
250
187
  * @private
251
188
  */
252
189
  _handleFreeBusy: function _handleFreeBusy(data) {
253
- var _this6 = this;
190
+ var _this5 = this;
254
191
  _calendarDecrypt.default.decryptFreeBusyResponse(this, data).then(function () {
255
192
  var response = {};
256
193
  if (data && data.calendarFreeBusyScheduleResponse) {
257
194
  response = data.calendarFreeBusyScheduleResponse;
258
195
  }
259
- if (response && response.requestId && response.requestId in _this6.rpcEventRequests) {
260
- _this6.logger.log("webex.internal.calendar - receive requests, requestId: ".concat(response.requestId));
196
+ if (response && response.requestId && response.requestId in _this5.rpcEventRequests) {
197
+ _this5.logger.log("webex.internal.calendar - receive requests, requestId: ".concat(response.requestId));
261
198
  delete response.encryptionKeyUrl;
262
- var resolve = _this6.rpcEventRequests[response.requestId].resolve;
199
+ var resolve = _this5.rpcEventRequests[response.requestId].resolve;
263
200
  resolve(response);
264
- delete _this6.rpcEventRequests[response.requestId];
201
+ delete _this5.rpcEventRequests[response.requestId];
265
202
  } else {
266
- _this6.logger.log('webex.internal.calendar - receive other requests.');
203
+ _this5.logger.log('webex.internal.calendar - receive other requests.');
267
204
  }
268
205
  });
269
206
  },
@@ -318,25 +255,15 @@ var Calendar = _webexCore.WebexPlugin.extend({
318
255
  });
319
256
  },
320
257
  /**
321
- * Retrieves an array of meeting participants for the meeting participantsUrl
322
- * @param {String} participantsUrl
258
+ * Retrieves an array of meeting participants for the meeting id
259
+ * @param {String} id
323
260
  * @returns {Promise} Resolves with an object of meeting participants
324
261
  */
325
- getParticipants: function getParticipants(participantsUrl) {
326
- return this.request({
327
- method: 'GET',
328
- uri: participantsUrl
329
- });
330
- },
331
- /**
332
- * get meeting notes using notesUrl from meeting object.
333
- * @param {String} notesUrl
334
- * @returns {Promise} Resolves with an object of meeting notes
335
- */
336
- getNotesByUrl: function getNotesByUrl(notesUrl) {
262
+ getParticipants: function getParticipants(id) {
337
263
  return this.request({
338
264
  method: 'GET',
339
- uri: notesUrl
265
+ service: 'calendar',
266
+ resource: "calendarEvents/".concat(_common.base64.encode(id), "/participants")
340
267
  });
341
268
  },
342
269
  /**
@@ -359,7 +286,7 @@ var Calendar = _webexCore.WebexPlugin.extend({
359
286
  * @returns {Promise} Resolves with an array of meetings
360
287
  */
361
288
  list: function list(options) {
362
- var _this7 = this;
289
+ var _this6 = this;
363
290
  options = options || {};
364
291
  return this.webex.request({
365
292
  method: 'GET',
@@ -371,7 +298,7 @@ var Calendar = _webexCore.WebexPlugin.extend({
371
298
  var promises = [];
372
299
  meetingObjects.forEach(function (meeting) {
373
300
  if (!meeting.encryptedParticipants) {
374
- promises.push(_this7.getParticipants(meeting.participantsUrl).then(function (notesResponse) {
301
+ promises.push(_this6.getParticipants(meeting.id).then(function (notesResponse) {
375
302
  meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;
376
303
  }));
377
304
  }
@@ -388,9 +315,9 @@ var Calendar = _webexCore.WebexPlugin.extend({
388
315
  * @returns {Promise} Resolves with creating calendar event response
389
316
  * */
390
317
  createCalendarEvent: function createCalendarEvent(data, query) {
391
- var _this8 = this;
318
+ var _this7 = this;
392
319
  return _calendarEncrypt.default.encryptCalendarEventRequest(this, data).then(function () {
393
- return _this8.request({
320
+ return _this7.request({
394
321
  method: 'POST',
395
322
  service: 'calendar',
396
323
  body: data,
@@ -407,9 +334,9 @@ var Calendar = _webexCore.WebexPlugin.extend({
407
334
  * @returns {Promise} Resolves with updating calendar event response
408
335
  * */
409
336
  updateCalendarEvent: function updateCalendarEvent(id, data, query) {
410
- var _this9 = this;
337
+ var _this8 = this;
411
338
  return _calendarEncrypt.default.encryptCalendarEventRequest(this, data).then(function () {
412
- return _this9.request({
339
+ return _this8.request({
413
340
  method: 'PATCH',
414
341
  service: 'calendar',
415
342
  body: data,
@@ -454,14 +381,14 @@ var Calendar = _webexCore.WebexPlugin.extend({
454
381
  * @returns {Promise} Resolves with a decrypted scheduler data
455
382
  * */
456
383
  getSchedulerData: function getSchedulerData(query) {
457
- var _this10 = this;
384
+ var _this9 = this;
458
385
  return this.request({
459
386
  method: 'GET',
460
387
  service: 'calendar',
461
388
  resource: 'schedulerData',
462
389
  qs: query || {}
463
390
  }).then(function (response) {
464
- return _calendarDecrypt.default.decryptSchedulerDataResponse(_this10, response.body).then(function () {
391
+ return _calendarDecrypt.default.decryptSchedulerDataResponse(_this9, response.body).then(function () {
465
392
  return response;
466
393
  });
467
394
  });
@@ -473,9 +400,9 @@ var Calendar = _webexCore.WebexPlugin.extend({
473
400
  * @returns {Promise} Resolves with a decrypted response
474
401
  * */
475
402
  getFreeBusy: function getFreeBusy(data, query) {
476
- var _this11 = this;
403
+ var _this10 = this;
477
404
  return _calendarEncrypt.default.encryptFreeBusyRequest(this, data).then(function () {
478
- return _this11.request({
405
+ return _this10.request({
479
406
  method: 'POST',
480
407
  service: 'calendar',
481
408
  body: data,
@@ -484,7 +411,7 @@ var Calendar = _webexCore.WebexPlugin.extend({
484
411
  });
485
412
  }).then(function () {
486
413
  return new _promise.default(function (resolve, reject) {
487
- _this11.rpcEventRequests[data.requestId] = {
414
+ _this10.rpcEventRequests[data.requestId] = {
488
415
  resolve: resolve,
489
416
  reject: reject
490
417
  };
@@ -493,7 +420,8 @@ var Calendar = _webexCore.WebexPlugin.extend({
493
420
  throw error;
494
421
  });
495
422
  },
496
- version: "2.60.1-next.9"
423
+ version: "2.60.2"
497
424
  });
498
- var _default = exports.default = Calendar;
425
+ var _default = Calendar;
426
+ exports.default = _default;
499
427
  //# sourceMappingURL=calendar.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_common","_webexCore","_collection","_interopRequireDefault","_constants","_calendarEncrypt","_calendarDecrypt","Calendar","WebexPlugin","extend","namespace","registered","rpcEventRequests","encryptionKeyUrl","prefetchEncryptionKey","_this","webex","canAuthorize","listenToOnce","credentials","isUnverifiedGuest","internal","encryption","kms","createUnboundKeys","count","then","keys","key","isArray","uri","logger","info","getKey","onBehalfOf","retrievedKey","initialize","_this2","register","_this3","error","_promise","default","reject","Error","resolve","device","mercury","connect","listenForEvents","trigger","CALENDAR_REGISTERED","catch","concat","message","unregister","_this4","stopListeningForEvents","disconnect","CALENDAR_UNREGISTERED","_this5","on","envelope","_handleCreate","data","_handleUpdate","_handleDelete","_handleFreeBusy","off","id","CalendarCollection","set","calendarMeetingExternal","CALENDAR_UPDATED","get","CALENDAR_CREATE","item","remove","CALENDAR_DELETE","_this6","DecryptHelper","decryptFreeBusyResponse","response","calendarFreeBusyScheduleResponse","requestId","log","syncCalendar","options","arguments","length","undefined","fromDate","config","toDate","list","res","setAll","getAll","getByType","value","includes","getBy","processMeetingEvent","event","transform","getParticipants","participantsUrl","request","method","getNotesByUrl","notesUrl","getNotes","service","resource","base64","encode","_this7","qs","meetingObjects","body","items","promises","forEach","meeting","encryptedParticipants","push","notesResponse","all","createCalendarEvent","query","_this8","EncryptHelper","encryptCalendarEventRequest","updateCalendarEvent","_this9","deleteCalendarEvent","getSchedulerData","_this10","decryptSchedulerDataResponse","getFreeBusy","_this11","encryptFreeBusyRequest","version","_default","exports"],"sources":["calendar.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * Calendar Item Create Event\n * Emitted when a calendar item has been added\n * @event calendar:meeting:create\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Item Update Event\n * Emitted when a calendar item has been updated\n * @event calendar:meeting:update\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Item Update Event\n * Emitted when a calendar item has been deleted\n * @event calendar:meeting:delete\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Registered Event\n * Emitted when the calendar instance has been registered and listening\n * @event calendar:registered\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Registered Event\n * Emitted when the calendar instance has been registered and listening\n * @event calendar:unregistered\n * @instance\n * @memberof Calendar\n */\nimport {isArray} from 'lodash';\nimport {base64} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CalendarCollection from './collection';\nimport {\n CALENDAR_REGISTERED,\n CALENDAR_UNREGISTERED,\n CALENDAR_DELETE,\n CALENDAR_CREATE,\n CALENDAR_UPDATED,\n} from './constants';\n\nimport EncryptHelper from './calendar.encrypt.helper';\nimport DecryptHelper from './calendar.decrypt.helper';\n\nconst Calendar = WebexPlugin.extend({\n namespace: 'Calendar',\n\n /**\n * registered value indicating events registration is successful\n * @instance\n * @type {Boolean}\n * @memberof Calendar\n */\n registered: false,\n\n /**\n * Cache all rpc event request locally\n * */\n rpcEventRequests: [],\n\n /**\n * Cache KMS encryptionKeyUrl\n * */\n encryptionKeyUrl: null,\n\n /**\n * Pre-fetch a KMS encryption key url to improve performance.\n * Waits for the user to be authorized and skips if an unverified guest.\n * @private\n * @returns {void}\n */\n prefetchEncryptionKey() {\n if (!this.webex.canAuthorize) {\n this.listenToOnce(this.webex, 'change:canAuthorize', () => {\n this.prefetchEncryptionKey();\n });\n\n return;\n }\n\n if (this.webex.credentials.isUnverifiedGuest) {\n return;\n }\n\n this.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = isArray(keys) ? keys[0] : keys;\n this.encryptionKeyUrl = key ? key.uri : null;\n this.logger.info('calendar->bind a KMS encryption key url');\n this.webex.internal.encryption\n .getKey(this.encryptionKeyUrl, {onBehalfOf: null})\n .then((retrievedKey) => {\n this.encryptionKeyUrl = retrievedKey ? retrievedKey.uri : null;\n this.logger.info('calendar->retrieve the KMS encryption key url and cache it');\n });\n });\n },\n\n /**\n * WebexPlugin initialize method. This triggers once Webex has completed its\n * initialization workflow.\n *\n * If the plugin is meant to perform startup actions, place them in this\n * `initialize()` method instead of the `constructor()` method.\n * @private\n * @returns {void}\n */\n initialize() {\n // Used to perform actions after webex is fully qualified and ready for\n // operation.\n this.listenToOnce(this.webex, 'ready', () => {\n this.prefetchEncryptionKey();\n });\n },\n\n /**\n * Explicitly sets up the calendar plugin by registering\n * the device, connecting to mercury, and listening for calendar events.\n * @returns {Promise}\n * @public\n * @memberof Calendar\n */\n register() {\n if (!this.webex.canAuthorize) {\n this.logger.error('calendar->register#ERROR, Unable to register, SDK cannot authorize');\n\n return Promise.reject(new Error('SDK cannot authorize'));\n }\n\n if (this.registered) {\n this.logger.info('calendar->register#INFO, Calendar plugin already registered');\n\n return Promise.resolve();\n }\n\n return this.webex.internal.device\n .register()\n .then(() => this.webex.internal.mercury.connect())\n .then(() => {\n this.listenForEvents();\n this.trigger(CALENDAR_REGISTERED);\n this.registered = true;\n })\n .catch((error) => {\n this.logger.error(`calendar->register#ERROR, Unable to register, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Explicitly tears down the calendar plugin by deregistering\n * the device, disconnecting from mercury, and stops listening to calendar events\n *\n * @returns {Promise}\n * @public\n * @memberof Calendar\n */\n unregister() {\n if (!this.registered) {\n this.logger.info('calendar->unregister#INFO, Calendar plugin already unregistered');\n\n return Promise.resolve();\n }\n\n this.stopListeningForEvents();\n\n return this.webex.internal.mercury\n .disconnect()\n .then(() => this.webex.internal.device.unregister())\n .then(() => {\n this.trigger(CALENDAR_UNREGISTERED);\n this.registered = false;\n });\n },\n\n /**\n * registers for calendar events through mercury\n * @returns {undefined}\n * @private\n */\n listenForEvents() {\n // Calendar mercury events listener\n this.webex.internal.mercury.on('event:calendar.meeting.create', (envelope) => {\n this._handleCreate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.update', (envelope) => {\n this._handleUpdate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.create.minimal', (envelope) => {\n this._handleCreate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.update.minimal', (envelope) => {\n this._handleUpdate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.delete', (envelope) => {\n this._handleDelete(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.free_busy', (envelope) => {\n this._handleFreeBusy(envelope.data);\n });\n },\n\n /**\n * unregisteres all the calendar events from mercury\n * @returns {undefined}\n * @private\n */\n stopListeningForEvents() {\n this.webex.internal.mercury.off('event:calendar.meeting.create');\n this.webex.internal.mercury.off('event:calendar.meeting.create.minimal');\n this.webex.internal.mercury.off('event:calendar.meeting.update');\n this.webex.internal.mercury.off('event:calendar.meeting.update.minimal');\n this.webex.internal.mercury.off('event:calendar.meeting.delete');\n this.webex.internal.mercury.off('event:calendar.free_busy');\n },\n\n /**\n * handles update events, triggers after collection updates\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleUpdate(data) {\n const id = CalendarCollection.set(data.calendarMeetingExternal);\n\n this.trigger(CALENDAR_UPDATED, CalendarCollection.get(id));\n },\n\n /**\n * handles create events, triggers after collection updates\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleCreate(data) {\n const id = CalendarCollection.set(data.calendarMeetingExternal);\n\n this.trigger(CALENDAR_CREATE, CalendarCollection.get(id));\n },\n\n /**\n * handles delete events, triggers after collection updates\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleDelete(data) {\n const item = CalendarCollection.remove(data.calendarMeetingExternal.id);\n\n this.trigger(CALENDAR_DELETE, item);\n },\n\n /**\n * handles free_busy events\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleFreeBusy(data) {\n DecryptHelper.decryptFreeBusyResponse(this, data).then(() => {\n let response = {};\n if (data && data.calendarFreeBusyScheduleResponse) {\n response = data.calendarFreeBusyScheduleResponse;\n }\n if (response && response.requestId && response.requestId in this.rpcEventRequests) {\n this.logger.log(\n `webex.internal.calendar - receive requests, requestId: ${response.requestId}`\n );\n delete response.encryptionKeyUrl;\n const {resolve} = this.rpcEventRequests[response.requestId];\n resolve(response);\n delete this.rpcEventRequests[response.requestId];\n } else {\n this.logger.log('webex.internal.calendar - receive other requests.');\n }\n });\n },\n\n /**\n * Retrieves a collection of calendars based on the request parameters\n * Defaults to 1 day before and 7 days ahead\n * @param {Object} options\n * @param {Date} options.fromDate the start of the time range\n * @param {Date} options.toDate the end of the time range\n * @returns {Promise} Resolves with an array of calendars\n */\n syncCalendar(options = {fromDate: this.config.fromDate, toDate: this.config.toDate}) {\n return this.list({fromDate: options.fromDate, toDate: options.toDate}).then((res) => {\n CalendarCollection.setAll(res);\n\n return CalendarCollection.getAll();\n });\n },\n /**\n * get the calendar item that has a matching value\n * @param {String} key meeting property\n * @param {Any} value the meeting property to match\n * @returns {Object}\n */\n getByType(key, value) {\n if (['spaceURI', 'spaceMeetURL', 'conversationId'].includes(key)) {\n return CalendarCollection.getBy(key, value);\n }\n throw new Error('key must be one of, spaceURI, spaceMeetURL, or conversationId');\n },\n\n /**\n * gets all the calendar items that have been populated\n * @returns {Object}\n */\n getAll() {\n return CalendarCollection.getAll();\n },\n\n /**\n * Decrypts an encrypted incoming calendar event\n * @param {Object} event\n * @returns {Promise} Resolves with a decrypted calendar event\n */\n processMeetingEvent(event) {\n return this.webex.transform('inbound', event).then(() => event);\n },\n\n /**\n * Retrieves an array of meeting participants for the meeting participantsUrl\n * @param {String} participantsUrl\n * @returns {Promise} Resolves with an object of meeting participants\n */\n getParticipants(participantsUrl) {\n return this.request({\n method: 'GET',\n uri: participantsUrl,\n });\n },\n\n /**\n * get meeting notes using notesUrl from meeting object.\n * @param {String} notesUrl\n * @returns {Promise} Resolves with an object of meeting notes\n */\n getNotesByUrl(notesUrl) {\n return this.request({\n method: 'GET',\n uri: notesUrl,\n });\n },\n\n /**\n * Retrieves a collection of meetings based on the request parameters\n * @param {String} id\n * @returns {Promise} Resolves with an object of meeting notes\n */\n getNotes(id) {\n return this.request({\n method: 'GET',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/notes`,\n });\n },\n\n /**\n * Retrieves a collection of meetings based on the request parameters\n * @param {Object} options\n * @param {Date} options.fromDate the start of the time range\n * @param {Date} options.toDate the end of the time range\n * @returns {Promise} Resolves with an array of meetings\n */\n list(options) {\n options = options || {};\n\n return this.webex\n .request({\n method: 'GET',\n service: 'calendar',\n resource: 'calendarEvents',\n qs: options,\n })\n .then((res) => {\n const meetingObjects = res.body.items;\n const promises = [];\n\n meetingObjects.forEach((meeting) => {\n if (!meeting.encryptedParticipants) {\n promises.push(\n this.getParticipants(meeting.participantsUrl).then((notesResponse) => {\n meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;\n })\n );\n }\n });\n\n return Promise.all(promises).then(() => meetingObjects);\n });\n },\n\n /**\n * Create calendar event\n * @param {object} [data] meeting payload data\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with creating calendar event response\n * */\n createCalendarEvent(data, query) {\n return EncryptHelper.encryptCalendarEventRequest(this, data).then(() =>\n this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'calendarEvents/sync',\n qs: query || {},\n })\n );\n },\n\n /**\n * Update calendar event\n * @param {string} [id] calendar event id\n * @param {object} [data] meeting payload data\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with updating calendar event response\n * */\n updateCalendarEvent(id, data, query) {\n return EncryptHelper.encryptCalendarEventRequest(this, data).then(() =>\n this.request({\n method: 'PATCH',\n service: 'calendar',\n body: data,\n resource: `calendarEvents/${base64.encode(id)}/sync`,\n qs: query || {},\n })\n );\n },\n\n /**\n * Delete calendar event\n * @param {string} [id] calendar event id\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with deleting calendar event response\n * */\n deleteCalendarEvent(id, query) {\n return this.request({\n method: 'DELETE',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/sync`,\n qs: query || {},\n });\n },\n\n /**\n * @typedef QuerySchedulerDataOptions\n * @param {string} [siteName] it is site full url, must have. Example: ccctest.dmz.webex.com\n * @param {string} [id] it is seriesOrOccurrenceId. If present, the series/occurrence meeting ID to fetch data for.\n * Example: 040000008200E00074C5B7101A82E008000000004A99F11A0841D9010000000000000000100000009EE499D4A71C1A46B51494C70EC7BFE5\n * @param {string} [clientMeetingId] If present, the client meeting UUID to fetch data for.\n * Example: 7f318aa9-887c-6e94-802a-8dc8e6eb1a0a\n * @param {string} [scheduleTemplateId] it template id.\n * @param {string} [sessionTypeId] it session type id.\n * @param {string} [organizerCIUserId] required in schedule-on-behalf case. It is the organizer's CI UUID.\n * @param {boolean} [usmPreference]\n * @param {string} [webexMeetingId] webex side meeting UUID\n * @param {string} [eventId] event ID.\n * @param {string} [icalUid] icalendar UUID.\n * @param {string} [thirdPartyType] third part type, such as: Microsoft\n */\n /**\n * Get scheduler data from calendar service\n * @param {QuerySchedulerDataOptions} [query] the command parameters for fetching scheduler data.\n * @returns {Promise} Resolves with a decrypted scheduler data\n * */\n getSchedulerData(query) {\n return this.request({\n method: 'GET',\n service: 'calendar',\n resource: 'schedulerData',\n qs: query || {},\n }).then((response) => {\n return DecryptHelper.decryptSchedulerDataResponse(this, response.body).then(() => response);\n });\n },\n\n /**\n * Get free busy status from calendar service\n * @param {Object} [data] the command parameters for fetching free busy status.\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with a decrypted response\n * */\n getFreeBusy(data, query) {\n return EncryptHelper.encryptFreeBusyRequest(this, data)\n .then(() => {\n return this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'freebusy',\n qs: query || {},\n });\n })\n .then(() => {\n return new Promise((resolve, reject) => {\n this.rpcEventRequests[data.requestId] = {resolve, reject};\n });\n })\n .catch((error) => {\n throw error;\n });\n },\n});\n\nexport default Calendar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["_common","require","_webexCore","_collection","_interopRequireDefault","_constants","_calendarEncrypt","_calendarDecrypt","Calendar","WebexPlugin","extend","namespace","registered","rpcEventRequests","encryptionKeyUrl","initialize","_this","listenToOnce","webex","internal","encryption","kms","createUnboundKeys","count","then","keys","key","_isArray2","default","uri","logger","info","getKey","onBehalfOf","retrievedKey","register","_this2","canAuthorize","error","_promise","reject","Error","resolve","device","mercury","connect","listenForEvents","trigger","CALENDAR_REGISTERED","catch","concat","message","unregister","_this3","stopListeningForEvents","disconnect","CALENDAR_UNREGISTERED","_this4","on","envelope","_handleCreate","data","_handleUpdate","_handleDelete","_handleFreeBusy","off","id","CalendarCollection","set","calendarMeetingExternal","CALENDAR_UPDATED","get","CALENDAR_CREATE","item","remove","CALENDAR_DELETE","_this5","DecryptHelper","decryptFreeBusyResponse","response","calendarFreeBusyScheduleResponse","requestId","log","syncCalendar","options","arguments","length","undefined","fromDate","config","toDate","list","res","setAll","getAll","getByType","value","includes","getBy","processMeetingEvent","event","transform","getParticipants","request","method","service","resource","base64","encode","getNotes","_this6","qs","meetingObjects","body","items","promises","forEach","meeting","encryptedParticipants","push","notesResponse","all","createCalendarEvent","query","_this7","EncryptHelper","encryptCalendarEventRequest","updateCalendarEvent","_this8","deleteCalendarEvent","getSchedulerData","_this9","decryptSchedulerDataResponse","getFreeBusy","_this10","encryptFreeBusyRequest","version","_default","exports"],"sources":["calendar.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\n/**\n * Calendar Item Create Event\n * Emitted when a calendar item has been added\n * @event calendar:meeting:create\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Item Update Event\n * Emitted when a calendar item has been updated\n * @event calendar:meeting:update\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Item Update Event\n * Emitted when a calendar item has been deleted\n * @event calendar:meeting:delete\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Registered Event\n * Emitted when the calendar instance has been registered and listening\n * @event calendar:registered\n * @instance\n * @memberof Calendar\n */\n\n/**\n * Calendar Registered Event\n * Emitted when the calendar instance has been registered and listening\n * @event calendar:unregistered\n * @instance\n * @memberof Calendar\n */\nimport {isArray} from 'lodash';\nimport {base64} from '@webex/common';\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CalendarCollection from './collection';\nimport {\n CALENDAR_REGISTERED,\n CALENDAR_UNREGISTERED,\n CALENDAR_DELETE,\n CALENDAR_CREATE,\n CALENDAR_UPDATED,\n} from './constants';\n\nimport EncryptHelper from './calendar.encrypt.helper';\nimport DecryptHelper from './calendar.decrypt.helper';\n\nconst Calendar = WebexPlugin.extend({\n namespace: 'Calendar',\n\n /**\n * registered value indicating events registration is successful\n * @instance\n * @type {Boolean}\n * @memberof Calendar\n */\n registered: false,\n\n /**\n * Cache all rpc event request locally\n * */\n rpcEventRequests: [],\n\n /**\n * Cache KMS encryptionKeyUrl\n * */\n encryptionKeyUrl: null,\n\n /**\n * WebexPlugin initialize method. This triggers once Webex has completed its\n * initialization workflow.\n *\n * If the plugin is meant to perform startup actions, place them in this\n * `initialize()` method instead of the `constructor()` method.\n * @returns {void}\n */\n initialize() {\n // Used to perform actions after webex is fully qualified and ready for\n // operation.\n this.listenToOnce(this.webex, 'ready', () => {\n // Pre-fetch a KMS encryption key url to improve performance\n this.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {\n const key = isArray(keys) ? keys[0] : keys;\n this.encryptionKeyUrl = key ? key.uri : null;\n this.logger.info('calendar->bind a KMS encryption key url');\n this.webex.internal.encryption\n .getKey(this.encryptionKeyUrl, {onBehalfOf: null})\n .then((retrievedKey) => {\n this.encryptionKeyUrl = retrievedKey ? retrievedKey.uri : null;\n this.logger.info('calendar->retrieve the KMS encryption key url and cache it');\n });\n });\n });\n },\n\n /**\n * Explicitly sets up the calendar plugin by registering\n * the device, connecting to mercury, and listening for calendar events.\n * @returns {Promise}\n * @public\n * @memberof Calendar\n */\n register() {\n if (!this.webex.canAuthorize) {\n this.logger.error('calendar->register#ERROR, Unable to register, SDK cannot authorize');\n\n return Promise.reject(new Error('SDK cannot authorize'));\n }\n\n if (this.registered) {\n this.logger.info('calendar->register#INFO, Calendar plugin already registered');\n\n return Promise.resolve();\n }\n\n return this.webex.internal.device\n .register()\n .then(() => this.webex.internal.mercury.connect())\n .then(() => {\n this.listenForEvents();\n this.trigger(CALENDAR_REGISTERED);\n this.registered = true;\n })\n .catch((error) => {\n this.logger.error(`calendar->register#ERROR, Unable to register, ${error.message}`);\n\n return Promise.reject(error);\n });\n },\n\n /**\n * Explicitly tears down the calendar plugin by deregistering\n * the device, disconnecting from mercury, and stops listening to calendar events\n *\n * @returns {Promise}\n * @public\n * @memberof Calendar\n */\n unregister() {\n if (!this.registered) {\n this.logger.info('calendar->unregister#INFO, Calendar plugin already unregistered');\n\n return Promise.resolve();\n }\n\n this.stopListeningForEvents();\n\n return this.webex.internal.mercury\n .disconnect()\n .then(() => this.webex.internal.device.unregister())\n .then(() => {\n this.trigger(CALENDAR_UNREGISTERED);\n this.registered = false;\n });\n },\n\n /**\n * registers for calendar events through mercury\n * @returns {undefined}\n * @private\n */\n listenForEvents() {\n // Calendar mercury events listener\n this.webex.internal.mercury.on('event:calendar.meeting.create', (envelope) => {\n this._handleCreate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.update', (envelope) => {\n this._handleUpdate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.create.minimal', (envelope) => {\n this._handleCreate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.update.minimal', (envelope) => {\n this._handleUpdate(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.meeting.delete', (envelope) => {\n this._handleDelete(envelope.data);\n });\n this.webex.internal.mercury.on('event:calendar.free_busy', (envelope) => {\n this._handleFreeBusy(envelope.data);\n });\n },\n\n /**\n * unregisteres all the calendar events from mercury\n * @returns {undefined}\n * @private\n */\n stopListeningForEvents() {\n this.webex.internal.mercury.off('event:calendar.meeting.create');\n this.webex.internal.mercury.off('event:calendar.meeting.create.minimal');\n this.webex.internal.mercury.off('event:calendar.meeting.update');\n this.webex.internal.mercury.off('event:calendar.meeting.update.minimal');\n this.webex.internal.mercury.off('event:calendar.meeting.delete');\n this.webex.internal.mercury.off('event:calendar.free_busy');\n },\n\n /**\n * handles update events, triggers after collection updates\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleUpdate(data) {\n const id = CalendarCollection.set(data.calendarMeetingExternal);\n\n this.trigger(CALENDAR_UPDATED, CalendarCollection.get(id));\n },\n\n /**\n * handles create events, triggers after collection updates\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleCreate(data) {\n const id = CalendarCollection.set(data.calendarMeetingExternal);\n\n this.trigger(CALENDAR_CREATE, CalendarCollection.get(id));\n },\n\n /**\n * handles delete events, triggers after collection updates\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleDelete(data) {\n const item = CalendarCollection.remove(data.calendarMeetingExternal.id);\n\n this.trigger(CALENDAR_DELETE, item);\n },\n\n /**\n * handles free_busy events\n * @param {Object} data\n * @returns {undefined}\n * @private\n */\n _handleFreeBusy(data) {\n DecryptHelper.decryptFreeBusyResponse(this, data).then(() => {\n let response = {};\n if (data && data.calendarFreeBusyScheduleResponse) {\n response = data.calendarFreeBusyScheduleResponse;\n }\n if (response && response.requestId && response.requestId in this.rpcEventRequests) {\n this.logger.log(\n `webex.internal.calendar - receive requests, requestId: ${response.requestId}`\n );\n delete response.encryptionKeyUrl;\n const {resolve} = this.rpcEventRequests[response.requestId];\n resolve(response);\n delete this.rpcEventRequests[response.requestId];\n } else {\n this.logger.log('webex.internal.calendar - receive other requests.');\n }\n });\n },\n\n /**\n * Retrieves a collection of calendars based on the request parameters\n * Defaults to 1 day before and 7 days ahead\n * @param {Object} options\n * @param {Date} options.fromDate the start of the time range\n * @param {Date} options.toDate the end of the time range\n * @returns {Promise} Resolves with an array of calendars\n */\n syncCalendar(options = {fromDate: this.config.fromDate, toDate: this.config.toDate}) {\n return this.list({fromDate: options.fromDate, toDate: options.toDate}).then((res) => {\n CalendarCollection.setAll(res);\n\n return CalendarCollection.getAll();\n });\n },\n /**\n * get the calendar item that has a matching value\n * @param {String} key meeting property\n * @param {Any} value the meeting property to match\n * @returns {Object}\n */\n getByType(key, value) {\n if (['spaceURI', 'spaceMeetURL', 'conversationId'].includes(key)) {\n return CalendarCollection.getBy(key, value);\n }\n throw new Error('key must be one of, spaceURI, spaceMeetURL, or conversationId');\n },\n\n /**\n * gets all the calendar items that have been populated\n * @returns {Object}\n */\n getAll() {\n return CalendarCollection.getAll();\n },\n\n /**\n * Decrypts an encrypted incoming calendar event\n * @param {Object} event\n * @returns {Promise} Resolves with a decrypted calendar event\n */\n processMeetingEvent(event) {\n return this.webex.transform('inbound', event).then(() => event);\n },\n\n /**\n * Retrieves an array of meeting participants for the meeting id\n * @param {String} id\n * @returns {Promise} Resolves with an object of meeting participants\n */\n getParticipants(id) {\n return this.request({\n method: 'GET',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/participants`,\n });\n },\n\n /**\n * Retrieves a collection of meetings based on the request parameters\n * @param {String} id\n * @returns {Promise} Resolves with an object of meeting notes\n */\n getNotes(id) {\n return this.request({\n method: 'GET',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/notes`,\n });\n },\n\n /**\n * Retrieves a collection of meetings based on the request parameters\n * @param {Object} options\n * @param {Date} options.fromDate the start of the time range\n * @param {Date} options.toDate the end of the time range\n * @returns {Promise} Resolves with an array of meetings\n */\n list(options) {\n options = options || {};\n\n return this.webex\n .request({\n method: 'GET',\n service: 'calendar',\n resource: 'calendarEvents',\n qs: options,\n })\n .then((res) => {\n const meetingObjects = res.body.items;\n const promises = [];\n\n meetingObjects.forEach((meeting) => {\n if (!meeting.encryptedParticipants) {\n promises.push(\n this.getParticipants(meeting.id).then((notesResponse) => {\n meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;\n })\n );\n }\n });\n\n return Promise.all(promises).then(() => meetingObjects);\n });\n },\n\n /**\n * Create calendar event\n * @param {object} [data] meeting payload data\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with creating calendar event response\n * */\n createCalendarEvent(data, query) {\n return EncryptHelper.encryptCalendarEventRequest(this, data).then(() =>\n this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'calendarEvents/sync',\n qs: query || {},\n })\n );\n },\n\n /**\n * Update calendar event\n * @param {string} [id] calendar event id\n * @param {object} [data] meeting payload data\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with updating calendar event response\n * */\n updateCalendarEvent(id, data, query) {\n return EncryptHelper.encryptCalendarEventRequest(this, data).then(() =>\n this.request({\n method: 'PATCH',\n service: 'calendar',\n body: data,\n resource: `calendarEvents/${base64.encode(id)}/sync`,\n qs: query || {},\n })\n );\n },\n\n /**\n * Delete calendar event\n * @param {string} [id] calendar event id\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with deleting calendar event response\n * */\n deleteCalendarEvent(id, query) {\n return this.request({\n method: 'DELETE',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/sync`,\n qs: query || {},\n });\n },\n\n /**\n * @typedef QuerySchedulerDataOptions\n * @param {string} [siteName] it is site full url, must have. Example: ccctest.dmz.webex.com\n * @param {string} [id] it is seriesOrOccurrenceId. If present, the series/occurrence meeting ID to fetch data for.\n * Example: 040000008200E00074C5B7101A82E008000000004A99F11A0841D9010000000000000000100000009EE499D4A71C1A46B51494C70EC7BFE5\n * @param {string} [clientMeetingId] If present, the client meeting UUID to fetch data for.\n * Example: 7f318aa9-887c-6e94-802a-8dc8e6eb1a0a\n * @param {string} [scheduleTemplateId] it template id.\n * @param {string} [sessionTypeId] it session type id.\n * @param {string} [organizerCIUserId] required in schedule-on-behalf case. It is the organizer's CI UUID.\n * @param {boolean} [usmPreference]\n * @param {string} [webexMeetingId] webex side meeting UUID\n * @param {string} [eventId] event ID.\n * @param {string} [icalUid] icalendar UUID.\n * @param {string} [thirdPartyType] third part type, such as: Microsoft\n */\n /**\n * Get scheduler data from calendar service\n * @param {QuerySchedulerDataOptions} [query] the command parameters for fetching scheduler data.\n * @returns {Promise} Resolves with a decrypted scheduler data\n * */\n getSchedulerData(query) {\n return this.request({\n method: 'GET',\n service: 'calendar',\n resource: 'schedulerData',\n qs: query || {},\n }).then((response) => {\n return DecryptHelper.decryptSchedulerDataResponse(this, response.body).then(() => response);\n });\n },\n\n /**\n * Get free busy status from calendar service\n * @param {Object} [data] the command parameters for fetching free busy status.\n * @param {object} [query] the query parameters for specific usage\n * @returns {Promise} Resolves with a decrypted response\n * */\n getFreeBusy(data, query) {\n return EncryptHelper.encryptFreeBusyRequest(this, data)\n .then(() => {\n return this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'freebusy',\n qs: query || {},\n });\n })\n .then(() => {\n return new Promise((resolve, reject) => {\n this.rpcEventRequests[data.requestId] = {resolve, reject};\n });\n })\n .catch((error) => {\n throw error;\n });\n },\n});\n\nexport default Calendar;\n"],"mappings":"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"}
@@ -7,7 +7,7 @@ _Object$defineProperty(exports, "__esModule", {
7
7
  });
8
8
  exports.default = void 0;
9
9
  var _values = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/object/values"));
10
- var _lodash = require("lodash");
10
+ var _find2 = _interopRequireDefault(require("lodash/find"));
11
11
  var _util = _interopRequireDefault(require("./util"));
12
12
  var _constants = require("./constants");
13
13
  /**
@@ -34,7 +34,7 @@ var CalendarCollection = {
34
34
  */
35
35
  getBy: function getBy(key, value) {
36
36
  if (key && value) {
37
- return (0, _lodash.find)(this.items, function (item) {
37
+ return (0, _find2.default)(this.items, function (item) {
38
38
  return item[key] === value;
39
39
  });
40
40
  }
@@ -96,5 +96,6 @@ var CalendarCollection = {
96
96
  return (0, _values.default)(this.items);
97
97
  }
98
98
  };
99
- var _default = exports.default = CalendarCollection;
99
+ var _default = CalendarCollection;
100
+ exports.default = _default;
100
101
  //# sourceMappingURL=collection.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_lodash","require","_util","_interopRequireDefault","_constants","CalendarCollection","namespace","CALENDAR","items","get","id","getBy","key","value","find","item","set","itemId","meeting","CalendarUtil","calculateEndTime","reset","remove","setAll","_this","forEach","getAll","_values","default","_default","exports"],"sources":["collection.js"],"sourcesContent":["import {find} from 'lodash';\n\nimport CalendarUtil from './util';\nimport {CALENDAR} from './constants';\n/**\n * @class CalendarCollection\n */\nconst CalendarCollection = {\n namespace: CALENDAR,\n items: {},\n /**\n * @param {String} id calendar ID\n * @returns {Any} Calendar Item specifc to that id\n * @private\n * @memberof CalendarCollection\n */\n get(id) {\n return this.items[id];\n },\n\n /**\n * @param {String} key any key and the corresponding calendar Item\n * @param {String} value any values corresponding to calendar item\n * @returns {Any} returns whatever is being stuffed into the collection\n * @private\n * @memberof CalendarCollection\n */\n getBy(key, value) {\n if (key && value) {\n return find(this.items, (item) => item[key] === value);\n }\n\n return null;\n },\n\n /**\n * @param {Object} item CalendarObject passed to the collection\n * @returns {Any} returns calender id whats get set\n * @private\n * @memberof CalendarCollection\n */\n set(item) {\n const itemId = item.id;\n const meeting = CalendarUtil.calculateEndTime(item);\n\n this.items[itemId] = meeting;\n\n return itemId;\n },\n\n /**\n * resets all the values in the calendarcollection\n * @returns {undefined}\n * @private\n * @memberof CalendarCollection\n */\n reset() {\n this.items = {};\n },\n\n /**\n * @param {Id} id is the id for the calendar item to be removed\n * @returns {Any} calendar item which got removed\n * @private\n * @memberof CalendarCollection\n */\n remove(id) {\n const meeting = this.get(id);\n\n delete this.items[id];\n\n return meeting;\n },\n\n /**\n * sets all the item passed to the collection\n * @param {Array} items array of calendar items\n * @private\n * @returns {undefined}\n * @memberof CalendarCollection\n */\n setAll(items) {\n items.forEach((item) => {\n this.set(item);\n });\n },\n\n /**\n * gets all the calendar stored in the collection\n * @param {Array} items array of calendar items\n * @private\n * @returns {Array} returns an array of calendar items\n * @memberof CalendarCollection\n */\n getAll() {\n return Object.values(this.items);\n },\n};\n\nexport default CalendarCollection;\n"],"mappings":";;;;;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AAEA,IAAAC,KAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,UAAA,GAAAH,OAAA;AACA;AACA;AACA;AACA,IAAMI,kBAAkB,GAAG;EACzBC,SAAS,EAAEC,mBAAQ;EACnBC,KAAK,EAAE,CAAC,CAAC;EACT;AACF;AACA;AACA;AACA;AACA;EACEC,GAAG,WAAAA,IAACC,EAAE,EAAE;IACN,OAAO,IAAI,CAACF,KAAK,CAACE,EAAE,CAAC;EACvB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,WAAAA,MAACC,GAAG,EAAEC,KAAK,EAAE;IAChB,IAAID,GAAG,IAAIC,KAAK,EAAE;MAChB,OAAO,IAAAC,YAAI,EAAC,IAAI,CAACN,KAAK,EAAE,UAACO,IAAI;QAAA,OAAKA,IAAI,CAACH,GAAG,CAAC,KAAKC,KAAK;MAAA,EAAC;IACxD;IAEA,OAAO,IAAI;EACb,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEG,GAAG,WAAAA,IAACD,IAAI,EAAE;IACR,IAAME,MAAM,GAAGF,IAAI,CAACL,EAAE;IACtB,IAAMQ,OAAO,GAAGC,aAAY,CAACC,gBAAgB,CAACL,IAAI,CAAC;IAEnD,IAAI,CAACP,KAAK,CAACS,MAAM,CAAC,GAAGC,OAAO;IAE5B,OAAOD,MAAM;EACf,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,KAAK,WAAAA,MAAA,EAAG;IACN,IAAI,CAACb,KAAK,GAAG,CAAC,CAAC;EACjB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEc,MAAM,WAAAA,OAACZ,EAAE,EAAE;IACT,IAAMQ,OAAO,GAAG,IAAI,CAACT,GAAG,CAACC,EAAE,CAAC;IAE5B,OAAO,IAAI,CAACF,KAAK,CAACE,EAAE,CAAC;IAErB,OAAOQ,OAAO;EAChB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEK,MAAM,WAAAA,OAACf,KAAK,EAAE;IAAA,IAAAgB,KAAA;IACZhB,KAAK,CAACiB,OAAO,CAAC,UAACV,IAAI,EAAK;MACtBS,KAAI,CAACR,GAAG,CAACD,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEW,MAAM,WAAAA,OAAA,EAAG;IACP,OAAO,IAAAC,OAAA,CAAAC,OAAA,EAAc,IAAI,CAACpB,KAAK,CAAC;EAClC;AACF,CAAC;AAAC,IAAAqB,QAAA,GAAAC,OAAA,CAAAF,OAAA,GAEavB,kBAAkB"}
1
+ {"version":3,"names":["_util","_interopRequireDefault","require","_constants","CalendarCollection","namespace","CALENDAR","items","get","id","getBy","key","value","_find2","default","item","set","itemId","meeting","CalendarUtil","calculateEndTime","reset","remove","setAll","_this","forEach","getAll","_values","_default","exports"],"sources":["collection.js"],"sourcesContent":["import {find} from 'lodash';\n\nimport CalendarUtil from './util';\nimport {CALENDAR} from './constants';\n/**\n * @class CalendarCollection\n */\nconst CalendarCollection = {\n namespace: CALENDAR,\n items: {},\n /**\n * @param {String} id calendar ID\n * @returns {Any} Calendar Item specifc to that id\n * @private\n * @memberof CalendarCollection\n */\n get(id) {\n return this.items[id];\n },\n\n /**\n * @param {String} key any key and the corresponding calendar Item\n * @param {String} value any values corresponding to calendar item\n * @returns {Any} returns whatever is being stuffed into the collection\n * @private\n * @memberof CalendarCollection\n */\n getBy(key, value) {\n if (key && value) {\n return find(this.items, (item) => item[key] === value);\n }\n\n return null;\n },\n\n /**\n * @param {Object} item CalendarObject passed to the collection\n * @returns {Any} returns calender id whats get set\n * @private\n * @memberof CalendarCollection\n */\n set(item) {\n const itemId = item.id;\n const meeting = CalendarUtil.calculateEndTime(item);\n\n this.items[itemId] = meeting;\n\n return itemId;\n },\n\n /**\n * resets all the values in the calendarcollection\n * @returns {undefined}\n * @private\n * @memberof CalendarCollection\n */\n reset() {\n this.items = {};\n },\n\n /**\n * @param {Id} id is the id for the calendar item to be removed\n * @returns {Any} calendar item which got removed\n * @private\n * @memberof CalendarCollection\n */\n remove(id) {\n const meeting = this.get(id);\n\n delete this.items[id];\n\n return meeting;\n },\n\n /**\n * sets all the item passed to the collection\n * @param {Array} items array of calendar items\n * @private\n * @returns {undefined}\n * @memberof CalendarCollection\n */\n setAll(items) {\n items.forEach((item) => {\n this.set(item);\n });\n },\n\n /**\n * gets all the calendar stored in the collection\n * @param {Array} items array of calendar items\n * @private\n * @returns {Array} returns an array of calendar items\n * @memberof CalendarCollection\n */\n getAll() {\n return Object.values(this.items);\n },\n};\n\nexport default CalendarCollection;\n"],"mappings":";;;;;;;;;;AAEA,IAAAA,KAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAD,OAAA;AACA;AACA;AACA;AACA,IAAME,kBAAkB,GAAG;EACzBC,SAAS,EAAEC,mBAAQ;EACnBC,KAAK,EAAE,CAAC,CAAC;EACT;AACF;AACA;AACA;AACA;AACA;EACEC,GAAG,WAAAA,IAACC,EAAE,EAAE;IACN,OAAO,IAAI,CAACF,KAAK,CAACE,EAAE,CAAC;EACvB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,KAAK,WAAAA,MAACC,GAAG,EAAEC,KAAK,EAAE;IAChB,IAAID,GAAG,IAAIC,KAAK,EAAE;MAChB,OAAO,IAAAC,MAAA,CAAAC,OAAA,EAAK,IAAI,CAACP,KAAK,EAAE,UAACQ,IAAI;QAAA,OAAKA,IAAI,CAACJ,GAAG,CAAC,KAAKC,KAAK;MAAA,EAAC;IACxD;IAEA,OAAO,IAAI;EACb,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,GAAG,WAAAA,IAACD,IAAI,EAAE;IACR,IAAME,MAAM,GAAGF,IAAI,CAACN,EAAE;IACtB,IAAMS,OAAO,GAAGC,aAAY,CAACC,gBAAgB,CAACL,IAAI,CAAC;IAEnD,IAAI,CAACR,KAAK,CAACU,MAAM,CAAC,GAAGC,OAAO;IAE5B,OAAOD,MAAM;EACf,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEI,KAAK,WAAAA,MAAA,EAAG;IACN,IAAI,CAACd,KAAK,GAAG,CAAC,CAAC;EACjB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;EACEe,MAAM,WAAAA,OAACb,EAAE,EAAE;IACT,IAAMS,OAAO,GAAG,IAAI,CAACV,GAAG,CAACC,EAAE,CAAC;IAE5B,OAAO,IAAI,CAACF,KAAK,CAACE,EAAE,CAAC;IAErB,OAAOS,OAAO;EAChB,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEK,MAAM,WAAAA,OAAChB,KAAK,EAAE;IAAA,IAAAiB,KAAA;IACZjB,KAAK,CAACkB,OAAO,CAAC,UAACV,IAAI,EAAK;MACtBS,KAAI,CAACR,GAAG,CAACD,IAAI,CAAC;IAChB,CAAC,CAAC;EACJ,CAAC;EAED;AACF;AACA;AACA;AACA;AACA;AACA;EACEW,MAAM,WAAAA,OAAA,EAAG;IACP,OAAO,IAAAC,OAAA,CAAAb,OAAA,EAAc,IAAI,CAACP,KAAK,CAAC;EAClC;AACF,CAAC;AAAC,IAAAqB,QAAA,GAEaxB,kBAAkB;AAAAyB,OAAA,CAAAf,OAAA,GAAAc,QAAA"}
package/dist/config.js CHANGED
@@ -8,10 +8,11 @@ exports.default = void 0;
8
8
  /*!
9
9
  * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.
10
10
  */
11
- var _default = exports.default = {
11
+ var _default = {
12
12
  calendar: {
13
13
  fromDate: new Date(new Date().setDate(new Date().getDate() - 1)),
14
14
  toDate: new Date(new Date().setDate(new Date().getDate() + 7))
15
15
  }
16
16
  };
17
+ exports.default = _default;
17
18
  //# sourceMappingURL=config.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_default","exports","default","calendar","fromDate","Date","setDate","getDate","toDate"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n calendar: {\n fromDate: new Date(new Date().setDate(new Date().getDate() - 1)),\n toDate: new Date(new Date().setDate(new Date().getDate() + 7)),\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAIe;EACbC,QAAQ,EAAE;IACRC,QAAQ,EAAE,IAAIC,IAAI,CAAC,IAAIA,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,IAAID,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAChEC,MAAM,EAAE,IAAIH,IAAI,CAAC,IAAIA,IAAI,CAAC,CAAC,CAACC,OAAO,CAAC,IAAID,IAAI,CAAC,CAAC,CAACE,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC;EAC/D;AACF,CAAC"}
1
+ {"version":3,"names":["_default","calendar","fromDate","Date","setDate","getDate","toDate","exports","default"],"sources":["config.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nexport default {\n calendar: {\n fromDate: new Date(new Date().setDate(new Date().getDate() - 1)),\n toDate: new Date(new Date().setDate(new Date().getDate() + 7)),\n },\n};\n"],"mappings":";;;;;;;AAAA;AACA;AACA;AAFA,IAAAA,QAAA,GAIe;EACbC,QAAQ,EAAE;IACRC,QAAQ,EAAE,IAAIC,IAAI,CAAC,IAAIA,IAAI,EAAE,CAACC,OAAO,CAAC,IAAID,IAAI,EAAE,CAACE,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;IAChEC,MAAM,EAAE,IAAIH,IAAI,CAAC,IAAIA,IAAI,EAAE,CAACC,OAAO,CAAC,IAAID,IAAI,EAAE,CAACE,OAAO,EAAE,GAAG,CAAC,CAAC;EAC/D;AACF,CAAC;AAAAE,OAAA,CAAAC,OAAA,GAAAR,QAAA"}
package/dist/constants.js CHANGED
@@ -5,10 +5,16 @@ _Object$defineProperty(exports, "__esModule", {
5
5
  value: true
6
6
  });
7
7
  exports.CALENDAR_UPDATED = exports.CALENDAR_UNREGISTERED = exports.CALENDAR_REGISTERED = exports.CALENDAR_DELETE = exports.CALENDAR_CREATE = exports.CALENDAR = void 0;
8
- var CALENDAR_REGISTERED = exports.CALENDAR_REGISTERED = 'calendar:registered';
9
- var CALENDAR_UNREGISTERED = exports.CALENDAR_UNREGISTERED = 'calendar:unregistered';
10
- var CALENDAR_UPDATED = exports.CALENDAR_UPDATED = 'calendar:update';
11
- var CALENDAR_DELETE = exports.CALENDAR_DELETE = 'calendar:delete';
12
- var CALENDAR_CREATE = exports.CALENDAR_CREATE = 'calendar:create';
13
- var CALENDAR = exports.CALENDAR = 'CALENDAR';
8
+ var CALENDAR_REGISTERED = 'calendar:registered';
9
+ exports.CALENDAR_REGISTERED = CALENDAR_REGISTERED;
10
+ var CALENDAR_UNREGISTERED = 'calendar:unregistered';
11
+ exports.CALENDAR_UNREGISTERED = CALENDAR_UNREGISTERED;
12
+ var CALENDAR_UPDATED = 'calendar:update';
13
+ exports.CALENDAR_UPDATED = CALENDAR_UPDATED;
14
+ var CALENDAR_DELETE = 'calendar:delete';
15
+ exports.CALENDAR_DELETE = CALENDAR_DELETE;
16
+ var CALENDAR_CREATE = 'calendar:create';
17
+ exports.CALENDAR_CREATE = CALENDAR_CREATE;
18
+ var CALENDAR = 'CALENDAR';
19
+ exports.CALENDAR = CALENDAR;
14
20
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["CALENDAR_REGISTERED","exports","CALENDAR_UNREGISTERED","CALENDAR_UPDATED","CALENDAR_DELETE","CALENDAR_CREATE","CALENDAR"],"sources":["constants.js"],"sourcesContent":["export const CALENDAR_REGISTERED = 'calendar:registered';\nexport const CALENDAR_UNREGISTERED = 'calendar:unregistered';\nexport const CALENDAR_UPDATED = 'calendar:update';\nexport const CALENDAR_DELETE = 'calendar:delete';\nexport const CALENDAR_CREATE = 'calendar:create';\nexport const CALENDAR = 'CALENDAR';\n"],"mappings":";;;;;;;AAAO,IAAMA,mBAAmB,GAAAC,OAAA,CAAAD,mBAAA,GAAG,qBAAqB;AACjD,IAAME,qBAAqB,GAAAD,OAAA,CAAAC,qBAAA,GAAG,uBAAuB;AACrD,IAAMC,gBAAgB,GAAAF,OAAA,CAAAE,gBAAA,GAAG,iBAAiB;AAC1C,IAAMC,eAAe,GAAAH,OAAA,CAAAG,eAAA,GAAG,iBAAiB;AACzC,IAAMC,eAAe,GAAAJ,OAAA,CAAAI,eAAA,GAAG,iBAAiB;AACzC,IAAMC,QAAQ,GAAAL,OAAA,CAAAK,QAAA,GAAG,UAAU"}
1
+ {"version":3,"names":["CALENDAR_REGISTERED","exports","CALENDAR_UNREGISTERED","CALENDAR_UPDATED","CALENDAR_DELETE","CALENDAR_CREATE","CALENDAR"],"sources":["constants.js"],"sourcesContent":["export const CALENDAR_REGISTERED = 'calendar:registered';\nexport const CALENDAR_UNREGISTERED = 'calendar:unregistered';\nexport const CALENDAR_UPDATED = 'calendar:update';\nexport const CALENDAR_DELETE = 'calendar:delete';\nexport const CALENDAR_CREATE = 'calendar:create';\nexport const CALENDAR = 'CALENDAR';\n"],"mappings":";;;;;;;AAAO,IAAMA,mBAAmB,GAAG,qBAAqB;AAACC,OAAA,CAAAD,mBAAA,GAAAA,mBAAA;AAClD,IAAME,qBAAqB,GAAG,uBAAuB;AAACD,OAAA,CAAAC,qBAAA,GAAAA,qBAAA;AACtD,IAAMC,gBAAgB,GAAG,iBAAiB;AAACF,OAAA,CAAAE,gBAAA,GAAAA,gBAAA;AAC3C,IAAMC,eAAe,GAAG,iBAAiB;AAACH,OAAA,CAAAG,eAAA,GAAAA,eAAA;AAC1C,IAAMC,eAAe,GAAG,iBAAiB;AAACJ,OAAA,CAAAI,eAAA,GAAAA,eAAA;AAC1C,IAAMC,QAAQ,GAAG,UAAU;AAACL,OAAA,CAAAK,QAAA,GAAAA,QAAA"}
package/dist/index.js CHANGED
@@ -12,11 +12,11 @@ _Object$defineProperty(exports, "default", {
12
12
  }
13
13
  });
14
14
  var _promise = _interopRequireDefault(require("@babel/runtime-corejs2/core-js/promise"));
15
+ var _has2 = _interopRequireDefault(require("lodash/has"));
15
16
  require("@webex/internal-plugin-device");
16
17
  require("@webex/internal-plugin-encryption");
17
18
  require("@webex/internal-plugin-conversation");
18
19
  var _webexCore = require("@webex/webex-core");
19
- var _lodash = require("lodash");
20
20
  var _calendar = _interopRequireDefault(require("./calendar"));
21
21
  var _config = _interopRequireDefault(require("./config"));
22
22
  /*!
@@ -30,7 +30,7 @@ var _config = _interopRequireDefault(require("./config"));
30
30
  name: 'transformMeetingNotes',
31
31
  direction: 'inbound',
32
32
  test: function test(ctx, response) {
33
- return _promise.default.resolve((0, _lodash.has)(response, 'body.encryptedNotes') && !(response.options && response.options.service === 'calendar' && response.options.method === 'GET' && response.options.resource === 'schedulerData'));
33
+ return _promise.default.resolve((0, _has2.default)(response, 'body.encryptedNotes') && !(response.options && response.options.service === 'calendar' && response.options.method === 'GET' && response.options.resource === 'schedulerData'));
34
34
  },
35
35
  extract: function extract(response) {
36
36
  return _promise.default.resolve(response.body);
@@ -39,7 +39,7 @@ var _config = _interopRequireDefault(require("./config"));
39
39
  name: 'transformMeetingParticipants',
40
40
  direction: 'inbound',
41
41
  test: function test(ctx, response) {
42
- return _promise.default.resolve((0, _lodash.has)(response, 'body.encryptedParticipants') && !(response.options && response.options.service === 'calendar' && response.options.method === 'GET' && response.options.resource === 'schedulerData'));
42
+ return _promise.default.resolve((0, _has2.default)(response, 'body.encryptedParticipants') && !(response.options && response.options.service === 'calendar' && response.options.method === 'GET' && response.options.resource === 'schedulerData'));
43
43
  },
44
44
  extract: function extract(response) {
45
45
  return _promise.default.resolve(response.body);
@@ -48,7 +48,7 @@ var _config = _interopRequireDefault(require("./config"));
48
48
  name: 'transformMeetingArray',
49
49
  direction: 'inbound',
50
50
  test: function test(ctx, response) {
51
- return _promise.default.resolve((0, _lodash.has)(response, 'body.items[0].seriesId'));
51
+ return _promise.default.resolve((0, _has2.default)(response, 'body.items[0].seriesId'));
52
52
  },
53
53
  extract: function extract(response) {
54
54
  return _promise.default.resolve(response.body.items);
@@ -57,7 +57,7 @@ var _config = _interopRequireDefault(require("./config"));
57
57
  name: 'transformMeeting',
58
58
  direction: 'inbound',
59
59
  test: function test(ctx, response) {
60
- return _promise.default.resolve((0, _lodash.has)(response, 'body.seriesId') && !(response.options && response.options.service === 'calendar' && response.options.method === 'GET' && response.options.resource === 'schedulerData'));
60
+ return _promise.default.resolve((0, _has2.default)(response, 'body.seriesId') && !(response.options && response.options.service === 'calendar' && response.options.method === 'GET' && response.options.resource === 'schedulerData'));
61
61
  },
62
62
  extract: function extract(response) {
63
63
  return _promise.default.resolve(response.body);
@@ -66,7 +66,7 @@ var _config = _interopRequireDefault(require("./config"));
66
66
  name: 'transformMeeting',
67
67
  direction: 'inbound',
68
68
  test: function test(ctx, response) {
69
- return _promise.default.resolve((0, _lodash.has)(response, 'calendarMeetingExternal'));
69
+ return _promise.default.resolve((0, _has2.default)(response, 'calendarMeetingExternal'));
70
70
  },
71
71
  extract: function extract(response) {
72
72
  return _promise.default.resolve(response.calendarMeetingExternal);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["require","_webexCore","_lodash","_calendar","_interopRequireDefault","_config","registerInternalPlugin","Calendar","config","payloadTransformer","predicates","name","direction","test","ctx","response","_promise","default","resolve","has","options","service","method","resource","extract","body","items","calendarMeetingExternal","transforms","fn","array","all","map","item","transform","object","encryptionKeyUrl","decryptedParticipants","encryptedParticipants","participant","decryptedMeetingJoinInfo","meetingJoinInfo","decryptedOrganizer","encryptedOrganizer","concat"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-device';\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-conversation';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has} from 'lodash';\n\nimport Calendar from './calendar';\nimport config from './config';\n\nregisterInternalPlugin('calendar', Calendar, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'transformMeetingNotes',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(\n has(response, 'body.encryptedNotes') &&\n !(\n response.options &&\n response.options.service === 'calendar' &&\n response.options.method === 'GET' &&\n response.options.resource === 'schedulerData'\n )\n );\n },\n extract(response) {\n return Promise.resolve(response.body);\n },\n },\n {\n name: 'transformMeetingParticipants',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(\n has(response, 'body.encryptedParticipants') &&\n !(\n response.options &&\n response.options.service === 'calendar' &&\n response.options.method === 'GET' &&\n response.options.resource === 'schedulerData'\n )\n );\n },\n extract(response) {\n return Promise.resolve(response.body);\n },\n },\n {\n name: 'transformMeetingArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.items[0].seriesId'));\n },\n extract(response) {\n return Promise.resolve(response.body.items);\n },\n },\n {\n name: 'transformMeeting',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(\n has(response, 'body.seriesId') &&\n !(\n response.options &&\n response.options.service === 'calendar' &&\n response.options.method === 'GET' &&\n response.options.resource === 'schedulerData'\n )\n );\n },\n extract(response) {\n return Promise.resolve(response.body);\n },\n },\n {\n name: 'transformMeeting',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'calendarMeetingExternal'));\n },\n extract(response) {\n return Promise.resolve(response.calendarMeetingExternal);\n },\n },\n ],\n transforms: [\n {\n name: 'transformMeetingArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformMeeting', item)));\n },\n },\n {\n name: 'transformMeeting',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n // Decrypt participant properties if meeting object contains participants\n const decryptedParticipants = object.encryptedParticipants\n ? object.encryptedParticipants.map((participant) =>\n Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'encryptedEmailAddress',\n object.encryptionKeyUrl,\n participant\n ),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedName',\n object.encryptionKeyUrl,\n participant\n ),\n ])\n )\n : [];\n\n // Decrypt meetingJoinInfo properties if meeting object contains meetingJoinInfo\n const decryptedMeetingJoinInfo = object.meetingJoinInfo\n ? Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'meetingJoinURI',\n object.encryptionKeyUrl,\n object.meetingJoinInfo\n ),\n ctx.transform(\n 'decryptTextProp',\n 'meetingJoinURL',\n object.encryptionKeyUrl,\n object.meetingJoinInfo\n ),\n ])\n : [];\n\n const decryptedOrganizer = object.encryptedOrganizer\n ? Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'encryptedEmailAddress',\n object.encryptionKeyUrl,\n object.encryptedOrganizer\n ),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedName',\n object.encryptionKeyUrl,\n object.encryptedOrganizer\n ),\n ])\n : [];\n\n return Promise.all(\n [\n ctx.transform('decryptTextProp', 'encryptedSubject', object.encryptionKeyUrl, object),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedLocation',\n object.encryptionKeyUrl,\n object\n ),\n ctx.transform('decryptTextProp', 'encryptedNotes', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'webexURI', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'webexURL', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'spaceMeetURL', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'spaceURI', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'spaceURL', object.encryptionKeyUrl, object),\n ].concat(decryptedOrganizer, decryptedParticipants, decryptedMeetingJoinInfo)\n );\n },\n },\n {\n name: 'transformMeetingNotes',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n return Promise.all([\n ctx.transform('decryptTextProp', 'encryptedNotes', object.encryptionKeyUrl, object),\n ]);\n },\n },\n {\n name: 'transformMeetingParticipants',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.encryptionKeyUrl || !object.encryptedParticipants) {\n return Promise.resolve();\n }\n\n // Decrypt participant properties\n const decryptedParticipants = object.encryptedParticipants.map((participant) =>\n Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'encryptedEmailAddress',\n object.encryptionKeyUrl,\n participant\n ),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedName',\n object.encryptionKeyUrl,\n participant\n ),\n ])\n );\n\n return Promise.all(decryptedParticipants);\n },\n },\n ],\n },\n});\n\nexport {default} from './calendar';\n"],"mappings":"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"}
1
+ {"version":3,"names":["require","_webexCore","_calendar","_interopRequireDefault","_config","registerInternalPlugin","Calendar","config","payloadTransformer","predicates","name","direction","test","ctx","response","_promise","default","resolve","_has2","options","service","method","resource","extract","body","items","calendarMeetingExternal","transforms","fn","array","all","map","item","transform","object","encryptionKeyUrl","decryptedParticipants","encryptedParticipants","participant","decryptedMeetingJoinInfo","meetingJoinInfo","decryptedOrganizer","encryptedOrganizer","concat"],"sources":["index.js"],"sourcesContent":["/*!\n * Copyright (c) 2015-2020 Cisco Systems, Inc. See LICENSE file.\n */\n\nimport '@webex/internal-plugin-device';\nimport '@webex/internal-plugin-encryption';\nimport '@webex/internal-plugin-conversation';\n\nimport {registerInternalPlugin} from '@webex/webex-core';\nimport {has} from 'lodash';\n\nimport Calendar from './calendar';\nimport config from './config';\n\nregisterInternalPlugin('calendar', Calendar, {\n config,\n payloadTransformer: {\n predicates: [\n {\n name: 'transformMeetingNotes',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(\n has(response, 'body.encryptedNotes') &&\n !(\n response.options &&\n response.options.service === 'calendar' &&\n response.options.method === 'GET' &&\n response.options.resource === 'schedulerData'\n )\n );\n },\n extract(response) {\n return Promise.resolve(response.body);\n },\n },\n {\n name: 'transformMeetingParticipants',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(\n has(response, 'body.encryptedParticipants') &&\n !(\n response.options &&\n response.options.service === 'calendar' &&\n response.options.method === 'GET' &&\n response.options.resource === 'schedulerData'\n )\n );\n },\n extract(response) {\n return Promise.resolve(response.body);\n },\n },\n {\n name: 'transformMeetingArray',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'body.items[0].seriesId'));\n },\n extract(response) {\n return Promise.resolve(response.body.items);\n },\n },\n {\n name: 'transformMeeting',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(\n has(response, 'body.seriesId') &&\n !(\n response.options &&\n response.options.service === 'calendar' &&\n response.options.method === 'GET' &&\n response.options.resource === 'schedulerData'\n )\n );\n },\n extract(response) {\n return Promise.resolve(response.body);\n },\n },\n {\n name: 'transformMeeting',\n direction: 'inbound',\n test(ctx, response) {\n return Promise.resolve(has(response, 'calendarMeetingExternal'));\n },\n extract(response) {\n return Promise.resolve(response.calendarMeetingExternal);\n },\n },\n ],\n transforms: [\n {\n name: 'transformMeetingArray',\n fn(ctx, array) {\n return Promise.all(array.map((item) => ctx.transform('transformMeeting', item)));\n },\n },\n {\n name: 'transformMeeting',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n // Decrypt participant properties if meeting object contains participants\n const decryptedParticipants = object.encryptedParticipants\n ? object.encryptedParticipants.map((participant) =>\n Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'encryptedEmailAddress',\n object.encryptionKeyUrl,\n participant\n ),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedName',\n object.encryptionKeyUrl,\n participant\n ),\n ])\n )\n : [];\n\n // Decrypt meetingJoinInfo properties if meeting object contains meetingJoinInfo\n const decryptedMeetingJoinInfo = object.meetingJoinInfo\n ? Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'meetingJoinURI',\n object.encryptionKeyUrl,\n object.meetingJoinInfo\n ),\n ctx.transform(\n 'decryptTextProp',\n 'meetingJoinURL',\n object.encryptionKeyUrl,\n object.meetingJoinInfo\n ),\n ])\n : [];\n\n const decryptedOrganizer = object.encryptedOrganizer\n ? Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'encryptedEmailAddress',\n object.encryptionKeyUrl,\n object.encryptedOrganizer\n ),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedName',\n object.encryptionKeyUrl,\n object.encryptedOrganizer\n ),\n ])\n : [];\n\n return Promise.all(\n [\n ctx.transform('decryptTextProp', 'encryptedSubject', object.encryptionKeyUrl, object),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedLocation',\n object.encryptionKeyUrl,\n object\n ),\n ctx.transform('decryptTextProp', 'encryptedNotes', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'webexURI', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'webexURL', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'spaceMeetURL', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'spaceURI', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'spaceURL', object.encryptionKeyUrl, object),\n ].concat(decryptedOrganizer, decryptedParticipants, decryptedMeetingJoinInfo)\n );\n },\n },\n {\n name: 'transformMeetingNotes',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.encryptionKeyUrl) {\n return Promise.resolve();\n }\n\n return Promise.all([\n ctx.transform('decryptTextProp', 'encryptedNotes', object.encryptionKeyUrl, object),\n ]);\n },\n },\n {\n name: 'transformMeetingParticipants',\n direction: 'inbound',\n fn(ctx, object) {\n if (!object) {\n return Promise.resolve();\n }\n\n if (!object.encryptionKeyUrl || !object.encryptedParticipants) {\n return Promise.resolve();\n }\n\n // Decrypt participant properties\n const decryptedParticipants = object.encryptedParticipants.map((participant) =>\n Promise.all([\n ctx.transform(\n 'decryptTextProp',\n 'encryptedEmailAddress',\n object.encryptionKeyUrl,\n participant\n ),\n ctx.transform(\n 'decryptTextProp',\n 'encryptedName',\n object.encryptionKeyUrl,\n participant\n ),\n ])\n );\n\n return Promise.all(decryptedParticipants);\n },\n },\n ],\n },\n});\n\nexport {default} from './calendar';\n"],"mappings":"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"}
package/dist/util.js CHANGED
@@ -12,8 +12,8 @@ _Object$defineProperty(exports, "__esModule", {
12
12
  });
13
13
  exports.default = void 0;
14
14
  var _defineProperty2 = _interopRequireDefault(require("@babel/runtime-corejs2/helpers/defineProperty"));
15
- function ownKeys(e, r) { var t = _Object$keys(e); if (_Object$getOwnPropertySymbols) { var o = _Object$getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return _Object$getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
16
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2.default)(e, r, t[r]); }) : _Object$getOwnPropertyDescriptors ? _Object$defineProperties(e, _Object$getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { _Object$defineProperty(e, r, _Object$getOwnPropertyDescriptor(t, r)); }); } return e; }
15
+ function ownKeys(object, enumerableOnly) { var keys = _Object$keys(object); if (_Object$getOwnPropertySymbols) { var symbols = _Object$getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return _Object$getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
16
+ 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; }
17
17
  var CalendarUtil = {
18
18
  // calculate the end time for the meeting based on the duration so it's stored on
19
19
  // the scheduled meeting item, that way client can display start and end without
@@ -33,5 +33,6 @@ var CalendarUtil = {
33
33
  });
34
34
  }
35
35
  };
36
- var _default = exports.default = CalendarUtil;
36
+ var _default = CalendarUtil;
37
+ exports.default = _default;
37
38
  //# sourceMappingURL=util.js.map
package/dist/util.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["CalendarUtil","calculateEndTime","item","_objectSpread","endTime","Date","start","getTime","durationMinutes","_default","exports","default"],"sources":["util.js"],"sourcesContent":["const CalendarUtil = {\n // calculate the end time for the meeting based on the duration so it's stored on\n // the scheduled meeting item, that way client can display start and end without\n // calculation on their side\n // gets the start time from server, and the duration, and reformats\n /**\n * calculates the end time for meeting\n * @param {Object} item the locus.host property\n * @param {Object} item.start start time of the meeting\n * @param {Object} item.duration duration of the meeting\n * @returns {Object} end time of the meeting\n * @memberof CalendarUtil\n */\n calculateEndTime(item) {\n return {\n ...item,\n endTime: new Date(new Date(item.start).getTime() + item.durationMinutes * 60000),\n };\n },\n};\n\nexport default CalendarUtil;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAMA,YAAY,GAAG;EACnB;EACA;EACA;EACA;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,gBAAgB,WAAAA,iBAACC,IAAI,EAAE;IACrB,OAAAC,aAAA,CAAAA,aAAA,KACKD,IAAI;MACPE,OAAO,EAAE,IAAIC,IAAI,CAAC,IAAIA,IAAI,CAACH,IAAI,CAACI,KAAK,CAAC,CAACC,OAAO,CAAC,CAAC,GAAGL,IAAI,CAACM,eAAe,GAAG,KAAK;IAAC;EAEpF;AACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaX,YAAY"}
1
+ {"version":3,"names":["CalendarUtil","calculateEndTime","item","_objectSpread","endTime","Date","start","getTime","durationMinutes","_default","exports","default"],"sources":["util.js"],"sourcesContent":["const CalendarUtil = {\n // calculate the end time for the meeting based on the duration so it's stored on\n // the scheduled meeting item, that way client can display start and end without\n // calculation on their side\n // gets the start time from server, and the duration, and reformats\n /**\n * calculates the end time for meeting\n * @param {Object} item the locus.host property\n * @param {Object} item.start start time of the meeting\n * @param {Object} item.duration duration of the meeting\n * @returns {Object} end time of the meeting\n * @memberof CalendarUtil\n */\n calculateEndTime(item) {\n return {\n ...item,\n endTime: new Date(new Date(item.start).getTime() + item.durationMinutes * 60000),\n };\n },\n};\n\nexport default CalendarUtil;\n"],"mappings":";;;;;;;;;;;;;;;;AAAA,IAAMA,YAAY,GAAG;EACnB;EACA;EACA;EACA;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,gBAAgB,WAAAA,iBAACC,IAAI,EAAE;IACrB,OAAAC,aAAA,CAAAA,aAAA,KACKD,IAAI;MACPE,OAAO,EAAE,IAAIC,IAAI,CAAC,IAAIA,IAAI,CAACH,IAAI,CAACI,KAAK,CAAC,CAACC,OAAO,EAAE,GAAGL,IAAI,CAACM,eAAe,GAAG,KAAK;IAAC;EAEpF;AACF,CAAC;AAAC,IAAAC,QAAA,GAEaT,YAAY;AAAAU,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  "directory": "packages/@webex/internal-plugin-calendar"
12
12
  },
13
13
  "engines": {
14
- "node": ">=16"
14
+ "node": ">=14"
15
15
  },
16
16
  "browserify": {
17
17
  "transform": [
@@ -19,38 +19,37 @@
19
19
  "envify"
20
20
  ]
21
21
  },
22
+ "version": "2.60.2",
22
23
  "devDependencies": {
23
24
  "@babel/core": "^7.17.10",
24
- "@webex/babel-config-legacy": "0.0.0",
25
- "@webex/eslint-config-legacy": "0.0.0",
26
- "@webex/jest-config-legacy": "0.0.0",
27
- "@webex/legacy-tools": "0.0.0",
28
- "@webex/test-helper-chai": "2.60.1-next.9",
29
- "@webex/test-helper-mocha": "2.60.1-next.9",
30
- "@webex/test-helper-mock-webex": "2.60.1-next.9",
31
- "@webex/test-helper-retry": "2.60.1-next.9",
32
- "@webex/test-helper-test-users": "2.60.1-next.9",
25
+ "@webex/babel-config-legacy": "2.60.2",
26
+ "@webex/eslint-config-legacy": "2.60.2",
27
+ "@webex/jest-config-legacy": "2.60.2",
28
+ "@webex/legacy-tools": "2.60.2",
29
+ "@webex/test-helper-chai": "2.60.2",
30
+ "@webex/test-helper-mocha": "2.60.2",
31
+ "@webex/test-helper-mock-webex": "2.60.2",
32
+ "@webex/test-helper-retry": "2.60.2",
33
+ "@webex/test-helper-test-users": "2.60.2",
33
34
  "eslint": "^8.24.0",
34
35
  "prettier": "^2.7.1",
35
36
  "sinon": "^9.2.4"
36
37
  },
37
38
  "dependencies": {
38
- "@webex/internal-plugin-conversation": "2.60.1-next.9",
39
- "@webex/internal-plugin-device": "2.60.1-next.9",
40
- "@webex/internal-plugin-encryption": "2.60.1-next.9",
41
- "@webex/webex-core": "2.60.1-next.9",
39
+ "@webex/internal-plugin-conversation": "2.60.2",
40
+ "@webex/internal-plugin-device": "2.60.2",
41
+ "@webex/internal-plugin-encryption": "2.60.2",
42
+ "@webex/webex-core": "2.60.2",
42
43
  "lodash": "^4.17.21",
43
44
  "uuid": "^3.3.2"
44
45
  },
45
46
  "scripts": {
46
47
  "build": "yarn build:src",
47
48
  "build:src": "webex-legacy-tools build -dest \"./dist\" -src \"./src\" -js -ts -maps",
48
- "deploy:npm": "yarn npm publish",
49
49
  "test": "yarn test:style && yarn test:unit && yarn test:integration && yarn test:browser",
50
50
  "test:browser": "webex-legacy-tools test --integration --unit --runner karma",
51
51
  "test:integration": "webex-legacy-tools test --integration --runner mocha",
52
52
  "test:style": "eslint ./src/**/*.*",
53
53
  "test:unit": "webex-legacy-tools test --unit --runner jest"
54
- },
55
- "version": "2.60.1-next.9"
56
- }
54
+ }
55
+ }
package/src/calendar.js CHANGED
@@ -78,52 +78,30 @@ const Calendar = WebexPlugin.extend({
78
78
  * */
79
79
  encryptionKeyUrl: null,
80
80
 
81
- /**
82
- * Pre-fetch a KMS encryption key url to improve performance.
83
- * Waits for the user to be authorized and skips if an unverified guest.
84
- * @private
85
- * @returns {void}
86
- */
87
- prefetchEncryptionKey() {
88
- if (!this.webex.canAuthorize) {
89
- this.listenToOnce(this.webex, 'change:canAuthorize', () => {
90
- this.prefetchEncryptionKey();
91
- });
92
-
93
- return;
94
- }
95
-
96
- if (this.webex.credentials.isUnverifiedGuest) {
97
- return;
98
- }
99
-
100
- this.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {
101
- const key = isArray(keys) ? keys[0] : keys;
102
- this.encryptionKeyUrl = key ? key.uri : null;
103
- this.logger.info('calendar->bind a KMS encryption key url');
104
- this.webex.internal.encryption
105
- .getKey(this.encryptionKeyUrl, {onBehalfOf: null})
106
- .then((retrievedKey) => {
107
- this.encryptionKeyUrl = retrievedKey ? retrievedKey.uri : null;
108
- this.logger.info('calendar->retrieve the KMS encryption key url and cache it');
109
- });
110
- });
111
- },
112
-
113
81
  /**
114
82
  * WebexPlugin initialize method. This triggers once Webex has completed its
115
83
  * initialization workflow.
116
84
  *
117
85
  * If the plugin is meant to perform startup actions, place them in this
118
86
  * `initialize()` method instead of the `constructor()` method.
119
- * @private
120
87
  * @returns {void}
121
88
  */
122
89
  initialize() {
123
90
  // Used to perform actions after webex is fully qualified and ready for
124
91
  // operation.
125
92
  this.listenToOnce(this.webex, 'ready', () => {
126
- this.prefetchEncryptionKey();
93
+ // Pre-fetch a KMS encryption key url to improve performance
94
+ this.webex.internal.encryption.kms.createUnboundKeys({count: 1}).then((keys) => {
95
+ const key = isArray(keys) ? keys[0] : keys;
96
+ this.encryptionKeyUrl = key ? key.uri : null;
97
+ this.logger.info('calendar->bind a KMS encryption key url');
98
+ this.webex.internal.encryption
99
+ .getKey(this.encryptionKeyUrl, {onBehalfOf: null})
100
+ .then((retrievedKey) => {
101
+ this.encryptionKeyUrl = retrievedKey ? retrievedKey.uri : null;
102
+ this.logger.info('calendar->retrieve the KMS encryption key url and cache it');
103
+ });
104
+ });
127
105
  });
128
106
  },
129
107
 
@@ -337,26 +315,15 @@ const Calendar = WebexPlugin.extend({
337
315
  },
338
316
 
339
317
  /**
340
- * Retrieves an array of meeting participants for the meeting participantsUrl
341
- * @param {String} participantsUrl
318
+ * Retrieves an array of meeting participants for the meeting id
319
+ * @param {String} id
342
320
  * @returns {Promise} Resolves with an object of meeting participants
343
321
  */
344
- getParticipants(participantsUrl) {
322
+ getParticipants(id) {
345
323
  return this.request({
346
324
  method: 'GET',
347
- uri: participantsUrl,
348
- });
349
- },
350
-
351
- /**
352
- * get meeting notes using notesUrl from meeting object.
353
- * @param {String} notesUrl
354
- * @returns {Promise} Resolves with an object of meeting notes
355
- */
356
- getNotesByUrl(notesUrl) {
357
- return this.request({
358
- method: 'GET',
359
- uri: notesUrl,
325
+ service: 'calendar',
326
+ resource: `calendarEvents/${base64.encode(id)}/participants`,
360
327
  });
361
328
  },
362
329
 
@@ -397,7 +364,7 @@ const Calendar = WebexPlugin.extend({
397
364
  meetingObjects.forEach((meeting) => {
398
365
  if (!meeting.encryptedParticipants) {
399
366
  promises.push(
400
- this.getParticipants(meeting.participantsUrl).then((notesResponse) => {
367
+ this.getParticipants(meeting.id).then((notesResponse) => {
401
368
  meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;
402
369
  })
403
370
  );
@@ -54,60 +54,10 @@ describe('internal-plugin-calendar', () => {
54
54
  uri: "kms://kms-us-int.wbx2.com/keys/xxxx-xxxx-xxxx-xxxx"
55
55
  }])
56
56
  },
57
- encryptText: sinon.stub().resolves("encryptedText"),
58
- getKey: sinon.stub().resolves(undefined),
57
+ encryptText: sinon.stub().resolves("encryptedText")
59
58
  };
60
59
  });
61
60
 
62
- describe('Private API', () => {
63
- describe('#prefetchEncryptionKey', () => {
64
- it('waits for the ability to authorize before doing anything', () => {
65
- webex.canAuthorize = false;
66
-
67
- webex.internal.calendar.prefetchEncryptionKey();
68
-
69
- assert.notCalled(webex.internal.encryption.kms.createUnboundKeys);
70
-
71
- // Behaviour when the user can authorize is tested elsewhere, so just ensure it gets called again
72
- const prefetchEncryptionKeyStub = sinon.stub(webex.internal.calendar, 'prefetchEncryptionKey');
73
-
74
- webex.trigger('change:canAuthorize');
75
-
76
- assert.calledOnce(prefetchEncryptionKeyStub);
77
- assert.calledWith(prefetchEncryptionKeyStub);
78
- });
79
-
80
- it('does nothing when the current user is an unverified guest', () => {
81
- webex.credentials.isUnverifiedGuest = true;
82
-
83
- webex.internal.calendar.prefetchEncryptionKey();
84
-
85
- assert.notCalled(webex.internal.encryption.kms.createUnboundKeys);
86
- });
87
-
88
- it('creates an encryption key when the current user can authorize', () => {
89
- webex.internal.calendar.prefetchEncryptionKey();
90
-
91
- assert.calledOnce(webex.internal.encryption.kms.createUnboundKeys);
92
- assert.calledWith(webex.internal.encryption.kms.createUnboundKeys, {count: 1});
93
- });
94
- });
95
-
96
- describe('#initialize', () => {
97
- it('adds relevant handlers when webex is ready', () => {
98
- const prefetchEncryptionKeyStub = sinon.stub(webex.internal.calendar, 'prefetchEncryptionKey');
99
-
100
- assert.notCalled(prefetchEncryptionKeyStub);
101
-
102
- // Initialize should have already run, so there should be an event handler already
103
- webex.trigger('ready');
104
-
105
- assert.calledOnce(prefetchEncryptionKeyStub);
106
- assert.calledWith(prefetchEncryptionKeyStub);
107
- });
108
- });
109
- });
110
-
111
61
  describe('Public Api Contract', () => {
112
62
  describe('#register()', () => {
113
63
  it('on calendar register call mercury registration', async () => {
@@ -349,7 +299,7 @@ describe('internal-plugin-calendar', () => {
349
299
  });
350
300
 
351
301
  describe('#getParticipants()', () => {
352
- const uri = 'participantsUrl';
302
+ const id = 'meetingId123';
353
303
 
354
304
  it('should fetch the meeting participants', async () => {
355
305
  webex.request = sinon.stub().returns(
@@ -360,34 +310,13 @@ describe('internal-plugin-calendar', () => {
360
310
  })
361
311
  );
362
312
 
363
- const res = await webex.internal.calendar.getParticipants(uri);
364
-
365
- assert.equal(res.body.encryptedParticipants.length, 1);
366
- assert.calledWith(webex.request, {
367
- method: 'GET',
368
- uri,
369
- });
370
- });
371
- });
372
-
373
- describe('#getNotesByUrl()', () => {
374
- const uri = 'notesUrl';
375
-
376
- it('should fetch the meeting notes', async () => {
377
- webex.request = sinon.stub().returns(
378
- Promise.resolve({
379
- body: {
380
- encryptedParticipants: ['participant1'],
381
- },
382
- })
383
- );
384
-
385
- const res = await webex.internal.calendar.getNotesByUrl(uri);
313
+ const res = await webex.internal.calendar.getParticipants(id);
386
314
 
387
315
  assert.equal(res.body.encryptedParticipants.length, 1);
388
316
  assert.calledWith(webex.request, {
389
317
  method: 'GET',
390
- uri,
318
+ service: 'calendar',
319
+ resource: `calendarEvents/${base64.encode(id)}/participants`,
391
320
  });
392
321
  });
393
322
  });