@webex/internal-plugin-calendar 2.52.11 → 2.52.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/calendar.js CHANGED
@@ -297,11 +297,6 @@ var Calendar = _webexCore.WebexPlugin.extend({
297
297
  var meetingObjects = res.body.items;
298
298
  var promises = [];
299
299
  meetingObjects.forEach(function (meeting) {
300
- if (!meeting.encryptedNotes) {
301
- promises.push(_this6.getNotes(meeting.id).then(function (notesResponse) {
302
- meeting.encryptedNotes = notesResponse.body && notesResponse.body.encryptedNotes;
303
- }));
304
- }
305
300
  if (!meeting.encryptedParticipants) {
306
301
  promises.push(_this6.getParticipants(meeting.id).then(function (notesResponse) {
307
302
  meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;
@@ -421,7 +416,7 @@ var Calendar = _webexCore.WebexPlugin.extend({
421
416
  });
422
417
  });
423
418
  },
424
- version: "2.52.11"
419
+ version: "2.52.13"
425
420
  });
426
421
  var _default = Calendar;
427
422
  exports.default = _default;
@@ -1 +1 @@
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","encryptedNotes","push","notesResponse","encryptedParticipants","all","createCalendarEvent","_this7","EncryptHelper","encryptCalendarEventRequest","updateCalendarEvent","query","_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.encryptedNotes) {\n promises.push(\n this.getNotes(meeting.id).then((notesResponse) => {\n meeting.encryptedNotes = notesResponse.body && notesResponse.body.encryptedNotes;\n })\n );\n }\n\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 * @returns {Promise} Resolves with creating calendar event response\n * */\n createCalendarEvent(data) {\n return EncryptHelper.encryptCalendarEventRequest(this, data).then(() =>\n this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'calendarEvents/sync',\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 * @returns {Promise} Resolves with deleting calendar event response\n * */\n deleteCalendarEvent(id) {\n return this.request({\n method: 'DELETE',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/sync`,\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. It should be base64 encoded.\n * Example: 040000008200E00074C5B7101A82E008000000004A99F11A0841D9010000000000000000100000009EE499D4A71C1A46B51494C70EC7BFE5\n * @param {string} [clientMeetingId] If present, the client meeting UUID to fetch data for. It should be base64 encoded.\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 * @returns {Promise} Resolves with a decrypted response\n * */\n getFreeBusy(data) {\n return new Promise((resolve, reject) => {\n EncryptHelper.encryptFreeBusyRequest(this, data)\n .then(() => {\n this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'freebusy',\n })\n .then(() => {\n this.rpcEventRequests[data.requestId] = {resolve, reject};\n })\n .catch((error) => {\n reject(error);\n });\n })\n .catch((error) => {\n reject(error);\n });\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","_this7","EncryptHelper","encryptCalendarEventRequest","updateCalendarEvent","query","_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 * @returns {Promise} Resolves with creating calendar event response\n * */\n createCalendarEvent(data) {\n return EncryptHelper.encryptCalendarEventRequest(this, data).then(() =>\n this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'calendarEvents/sync',\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 * @returns {Promise} Resolves with deleting calendar event response\n * */\n deleteCalendarEvent(id) {\n return this.request({\n method: 'DELETE',\n service: 'calendar',\n resource: `calendarEvents/${base64.encode(id)}/sync`,\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. It should be base64 encoded.\n * Example: 040000008200E00074C5B7101A82E008000000004A99F11A0841D9010000000000000000100000009EE499D4A71C1A46B51494C70EC7BFE5\n * @param {string} [clientMeetingId] If present, the client meeting UUID to fetch data for. It should be base64 encoded.\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 * @returns {Promise} Resolves with a decrypted response\n * */\n getFreeBusy(data) {\n return new Promise((resolve, reject) => {\n EncryptHelper.encryptFreeBusyRequest(this, data)\n .then(() => {\n this.request({\n method: 'POST',\n service: 'calendar',\n body: data,\n resource: 'freebusy',\n })\n .then(() => {\n this.rpcEventRequests[data.requestId] = {resolve, reject};\n })\n .catch((error) => {\n reject(error);\n });\n })\n .catch((error) => {\n reject(error);\n });\n });\n },\n});\n\nexport default Calendar;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -19,27 +19,27 @@
19
19
  "envify"
20
20
  ]
21
21
  },
22
- "version": "2.52.11",
22
+ "version": "2.52.13",
23
23
  "devDependencies": {
24
24
  "@babel/core": "^7.17.10",
25
- "@webex/babel-config-legacy": "2.52.11",
26
- "@webex/eslint-config-legacy": "2.52.11",
27
- "@webex/jest-config-legacy": "2.52.11",
28
- "@webex/legacy-tools": "2.52.11",
29
- "@webex/test-helper-chai": "2.52.11",
30
- "@webex/test-helper-mocha": "2.52.11",
31
- "@webex/test-helper-mock-webex": "2.52.11",
32
- "@webex/test-helper-retry": "2.52.11",
33
- "@webex/test-helper-test-users": "2.52.11",
25
+ "@webex/babel-config-legacy": "2.52.13",
26
+ "@webex/eslint-config-legacy": "2.52.13",
27
+ "@webex/jest-config-legacy": "2.52.13",
28
+ "@webex/legacy-tools": "2.52.13",
29
+ "@webex/test-helper-chai": "2.52.13",
30
+ "@webex/test-helper-mocha": "2.52.13",
31
+ "@webex/test-helper-mock-webex": "2.52.13",
32
+ "@webex/test-helper-retry": "2.52.13",
33
+ "@webex/test-helper-test-users": "2.52.13",
34
34
  "eslint": "^8.24.0",
35
35
  "prettier": "^2.7.1",
36
36
  "sinon": "^9.2.4"
37
37
  },
38
38
  "dependencies": {
39
- "@webex/internal-plugin-conversation": "2.52.11",
40
- "@webex/internal-plugin-device": "2.52.11",
41
- "@webex/internal-plugin-encryption": "2.52.11",
42
- "@webex/webex-core": "2.52.11",
39
+ "@webex/internal-plugin-conversation": "2.52.13",
40
+ "@webex/internal-plugin-device": "2.52.13",
41
+ "@webex/internal-plugin-encryption": "2.52.13",
42
+ "@webex/webex-core": "2.52.13",
43
43
  "lodash": "^4.17.21",
44
44
  "uuid": "^3.3.2"
45
45
  },
package/src/calendar.js CHANGED
@@ -362,14 +362,6 @@ const Calendar = WebexPlugin.extend({
362
362
  const promises = [];
363
363
 
364
364
  meetingObjects.forEach((meeting) => {
365
- if (!meeting.encryptedNotes) {
366
- promises.push(
367
- this.getNotes(meeting.id).then((notesResponse) => {
368
- meeting.encryptedNotes = notesResponse.body && notesResponse.body.encryptedNotes;
369
- })
370
- );
371
- }
372
-
373
365
  if (!meeting.encryptedParticipants) {
374
366
  promises.push(
375
367
  this.getParticipants(meeting.id).then((notesResponse) => {
@@ -211,18 +211,6 @@ describe('internal-plugin-calendar', () => {
211
211
  },
212
212
  })
213
213
  );
214
- // getNotes stub
215
- webexRequestStub
216
- .withArgs({
217
- method: 'GET',
218
- service: 'calendar',
219
- resource: `calendarEvents/${base64.encode('calendar1')}/notes`,
220
- })
221
- .returns(
222
- Promise.resolve({
223
- body: null,
224
- })
225
- );
226
214
 
227
215
  // Assign webexRequestStub to webex.request
228
216
  webex.request = webexRequestStub;
@@ -231,7 +219,7 @@ describe('internal-plugin-calendar', () => {
231
219
 
232
220
  assert.equal(res.length, 2);
233
221
  assert.deepEqual(res, [
234
- {id: 'calendar1', encryptedNotes: null, encryptedParticipants: ['participant1']},
222
+ {id: 'calendar1', encryptedParticipants: ['participant1']},
235
223
  {id: 'calendar2', encryptedNotes: 'notes2', encryptedParticipants: ['participant2']},
236
224
  ]);
237
225
  assert.calledWith(webex.request, {
@@ -240,11 +228,6 @@ describe('internal-plugin-calendar', () => {
240
228
  resource: 'calendarEvents',
241
229
  qs: {fromDate: 'xx-xx', toDate: 'xx-nn'},
242
230
  });
243
- assert.calledWith(webex.request, {
244
- method: 'GET',
245
- service: 'calendar',
246
- resource: `calendarEvents/${base64.encode('calendar1')}/notes`,
247
- });
248
231
  });
249
232
 
250
233
  it('should fetch the calendar list and resolves with fetched encryptedNotes', async () => {
@@ -262,7 +245,7 @@ describe('internal-plugin-calendar', () => {
262
245
  Promise.resolve({
263
246
  body: {
264
247
  items: [
265
- {id: 'calendar1', encryptedParticipants: ['participant1']},
248
+ {id: 'calendar1', encryptedNotes: 'notes1', encryptedParticipants: ['participant1']},
266
249
  {
267
250
  id: 'calendar2',
268
251
  encryptedNotes: 'notes2',
@@ -272,20 +255,6 @@ describe('internal-plugin-calendar', () => {
272
255
  },
273
256
  })
274
257
  );
275
- // getNotes stub
276
- webexRequestStub
277
- .withArgs({
278
- method: 'GET',
279
- service: 'calendar',
280
- resource: `calendarEvents/${base64.encode('calendar1')}/notes`,
281
- })
282
- .returns(
283
- Promise.resolve({
284
- body: {
285
- encryptedNotes: 'notes1',
286
- },
287
- })
288
- );
289
258
 
290
259
  // Assign webexRequestStub to webex.request
291
260
  webex.request = webexRequestStub;
@@ -303,11 +272,6 @@ describe('internal-plugin-calendar', () => {
303
272
  resource: 'calendarEvents',
304
273
  qs: {fromDate: 'xx-xx', toDate: 'xx-nn'},
305
274
  });
306
- assert.calledWith(webex.request, {
307
- method: 'GET',
308
- service: 'calendar',
309
- resource: `calendarEvents/${base64.encode('calendar1')}/notes`,
310
- });
311
275
  });
312
276
  });
313
277