@webex/internal-plugin-calendar 3.0.0-beta.14 → 3.0.0-beta.15

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -21,14 +21,12 @@ npm install --save @webex/internal-plugin-calendar
21
21
  ## Usage
22
22
 
23
23
  ```js
24
-
25
24
  import '@webex/internal-plugin-calendar';
26
25
 
27
26
  import WebexCore from '@webex/webex-core';
28
27
 
29
28
  const webex = new WebexCore();
30
- webex.internal.calendar.WHATEVER
31
-
29
+ webex.internal.calendar.WHATEVER;
32
30
  ```
33
31
 
34
32
  ## Maintainers
package/dist/calendar.js CHANGED
@@ -25,28 +25,28 @@ var _constants = require("./constants");
25
25
  */
26
26
 
27
27
  /**
28
- * Calendar Item Create Event
29
- * Emitted when a calendar item has been added
30
- * @event calendar:meeting:create
31
- * @instance
32
- * @memberof Calendar
33
- */
28
+ * Calendar Item Create Event
29
+ * Emitted when a calendar item has been added
30
+ * @event calendar:meeting:create
31
+ * @instance
32
+ * @memberof Calendar
33
+ */
34
34
 
35
35
  /**
36
- * Calendar Item Update Event
37
- * Emitted when a calendar item has been updated
38
- * @event calendar:meeting:update
39
- * @instance
40
- * @memberof Calendar
41
- */
36
+ * Calendar Item Update Event
37
+ * Emitted when a calendar item has been updated
38
+ * @event calendar:meeting:update
39
+ * @instance
40
+ * @memberof Calendar
41
+ */
42
42
 
43
43
  /**
44
- * Calendar Item Update Event
45
- * Emitted when a calendar item has been deleted
46
- * @event calendar:meeting:delete
47
- * @instance
48
- * @memberof Calendar
49
- */
44
+ * Calendar Item Update Event
45
+ * Emitted when a calendar item has been deleted
46
+ * @event calendar:meeting:delete
47
+ * @instance
48
+ * @memberof Calendar
49
+ */
50
50
 
51
51
  /**
52
52
  * Calendar Registered Event
@@ -329,7 +329,7 @@ var Calendar = _webexCore.WebexPlugin.extend({
329
329
  });
330
330
  });
331
331
  },
332
- version: "3.0.0-beta.14"
332
+ version: "3.0.0-beta.15"
333
333
  });
334
334
 
335
335
  var _default = Calendar;
@@ -1 +1 @@
1
- {"version":3,"names":["Calendar","WebexPlugin","extend","namespace","registered","register","webex","canAuthorize","logger","error","reject","Error","info","resolve","internal","device","then","mercury","connect","listenForEvents","trigger","CALENDAR_REGISTERED","catch","message","unregister","stopListeningForEvents","disconnect","CALENDAR_UNREGISTERED","on","envelope","_handleCreate","data","_handleUpdate","_handleDelete","off","id","CalendarCollection","set","calendarMeetingExternal","CALENDAR_UPDATED","get","CALENDAR_CREATE","item","remove","CALENDAR_DELETE","syncCalendar","options","fromDate","config","toDate","list","res","setAll","getAll","getByType","key","value","includes","getBy","processMeetingEvent","event","transform","getParticipants","request","method","service","resource","btoa","getNotes","qs","meetingObjects","body","items","promises","forEach","meeting","encryptedNotes","push","notesResponse","encryptedParticipants","all"],"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 */\n\nimport btoa from 'btoa';\nimport {WebexPlugin} from '@webex/webex-core';\n\nimport CalendarCollection from './collection';\nimport {CALENDAR_REGISTERED, CALENDAR_UNREGISTERED, CALENDAR_DELETE, CALENDAR_CREATE, CALENDAR_UPDATED} from './constants';\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 * 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.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.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 },\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 },\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 * 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)\n .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/${btoa(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/${btoa(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.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)\n .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)\n .then((notesResponse) => {\n meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;\n })\n );\n }\n });\n\n return Promise.all(promises)\n .then(() => meetingObjects);\n });\n }\n});\n\nexport default Calendar;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Calendar","WebexPlugin","extend","namespace","registered","register","webex","canAuthorize","logger","error","reject","Error","info","resolve","internal","device","then","mercury","connect","listenForEvents","trigger","CALENDAR_REGISTERED","catch","message","unregister","stopListeningForEvents","disconnect","CALENDAR_UNREGISTERED","on","envelope","_handleCreate","data","_handleUpdate","_handleDelete","off","id","CalendarCollection","set","calendarMeetingExternal","CALENDAR_UPDATED","get","CALENDAR_CREATE","item","remove","CALENDAR_DELETE","syncCalendar","options","fromDate","config","toDate","list","res","setAll","getAll","getByType","key","value","includes","getBy","processMeetingEvent","event","transform","getParticipants","request","method","service","resource","btoa","getNotes","qs","meetingObjects","body","items","promises","forEach","meeting","encryptedNotes","push","notesResponse","encryptedParticipants","all"],"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 */\n\nimport btoa from 'btoa';\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\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 * 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 },\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 },\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 * 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/${btoa(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/${btoa(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\nexport default Calendar;\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["CalendarCollection","namespace","CALENDAR","items","get","id","getBy","key","value","item","set","itemId","meeting","CalendarUtil","calculateEndTime","reset","remove","setAll","forEach","getAll"],"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 /**\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};\n\nexport default CalendarCollection;\n"],"mappings":";;;;;;;;;;;;;;;;AAEA;;AACA;;AACA;AACA;AACA;AACA,IAAMA,kBAAkB,GAAG;EACzBC,SAAS,EAAEC,mBADc;EAEzBC,KAAK,EAAE,EAFkB;;EAGzB;AACF;AACA;AACA;AACA;AACA;EACEC,GATyB,eASrBC,EATqB,EASjB;IACN,OAAO,KAAKF,KAAL,CAAWE,EAAX,CAAP;EACD,CAXwB;;EAazB;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,KApByB,iBAoBnBC,GApBmB,EAoBdC,KApBc,EAoBP;IAChB,IAAID,GAAG,IAAIC,KAAX,EAAkB;MAChB,OAAO,oBAAK,KAAKL,KAAV,EAAiB,UAACM,IAAD;QAAA,OAAWA,IAAI,CAACF,GAAD,CAAJ,KAAcC,KAAzB;MAAA,CAAjB,CAAP;IACD;;IAED,OAAO,IAAP;EACD,CA1BwB;;EA4BzB;AACF;AACA;AACA;AACA;AACA;EACEE,GAlCyB,eAkCrBD,IAlCqB,EAkCf;IACR,IAAME,MAAM,GAAGF,IAAI,CAACJ,EAApB;;IACA,IAAMO,OAAO,GAAGC,aAAA,CAAaC,gBAAb,CAA8BL,IAA9B,CAAhB;;IAEA,KAAKN,KAAL,CAAWQ,MAAX,IAAqBC,OAArB;IAEA,OAAOD,MAAP;EACD,CAzCwB;;EA2CzB;AACF;AACA;AACA;AACA;AACA;EACEI,KAjDyB,mBAiDjB;IACN,KAAKZ,KAAL,GAAa,EAAb;EACD,CAnDwB;;EAsDzB;AACF;AACA;AACA;AACA;AACA;EACEa,MA5DyB,kBA4DlBX,EA5DkB,EA4Dd;IACT,IAAMO,OAAO,GAAG,KAAKR,GAAL,CAASC,EAAT,CAAhB;IAEA,OAAO,KAAKF,KAAL,CAAWE,EAAX,CAAP;IAEA,OAAOO,OAAP;EACD,CAlEwB;;EAoEzB;AACF;AACA;AACA;AACA;AACA;AACA;EACEK,MA3EyB,kBA2ElBd,KA3EkB,EA2EX;IAAA;;IACZA,KAAK,CAACe,OAAN,CAAc,UAACT,IAAD,EAAU;MACtB,KAAI,CAACC,GAAL,CAASD,IAAT;IACD,CAFD;EAGD,CA/EwB;;EAiFzB;AACF;AACA;AACA;AACA;AACA;AACA;EACEU,MAxFyB,oBAwFhB;IACP,OAAO,qBAAc,KAAKhB,KAAnB,CAAP;EACD;AA1FwB,CAA3B;eA8FeH,kB"}
1
+ {"version":3,"names":["CalendarCollection","namespace","CALENDAR","items","get","id","getBy","key","value","item","set","itemId","meeting","CalendarUtil","calculateEndTime","reset","remove","setAll","forEach","getAll"],"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;;AACA;;AACA;AACA;AACA;AACA,IAAMA,kBAAkB,GAAG;EACzBC,SAAS,EAAEC,mBADc;EAEzBC,KAAK,EAAE,EAFkB;;EAGzB;AACF;AACA;AACA;AACA;AACA;EACEC,GATyB,eASrBC,EATqB,EASjB;IACN,OAAO,KAAKF,KAAL,CAAWE,EAAX,CAAP;EACD,CAXwB;;EAazB;AACF;AACA;AACA;AACA;AACA;AACA;EACEC,KApByB,iBAoBnBC,GApBmB,EAoBdC,KApBc,EAoBP;IAChB,IAAID,GAAG,IAAIC,KAAX,EAAkB;MAChB,OAAO,oBAAK,KAAKL,KAAV,EAAiB,UAACM,IAAD;QAAA,OAAUA,IAAI,CAACF,GAAD,CAAJ,KAAcC,KAAxB;MAAA,CAAjB,CAAP;IACD;;IAED,OAAO,IAAP;EACD,CA1BwB;;EA4BzB;AACF;AACA;AACA;AACA;AACA;EACEE,GAlCyB,eAkCrBD,IAlCqB,EAkCf;IACR,IAAME,MAAM,GAAGF,IAAI,CAACJ,EAApB;;IACA,IAAMO,OAAO,GAAGC,aAAA,CAAaC,gBAAb,CAA8BL,IAA9B,CAAhB;;IAEA,KAAKN,KAAL,CAAWQ,MAAX,IAAqBC,OAArB;IAEA,OAAOD,MAAP;EACD,CAzCwB;;EA2CzB;AACF;AACA;AACA;AACA;AACA;EACEI,KAjDyB,mBAiDjB;IACN,KAAKZ,KAAL,GAAa,EAAb;EACD,CAnDwB;;EAqDzB;AACF;AACA;AACA;AACA;AACA;EACEa,MA3DyB,kBA2DlBX,EA3DkB,EA2Dd;IACT,IAAMO,OAAO,GAAG,KAAKR,GAAL,CAASC,EAAT,CAAhB;IAEA,OAAO,KAAKF,KAAL,CAAWE,EAAX,CAAP;IAEA,OAAOO,OAAP;EACD,CAjEwB;;EAmEzB;AACF;AACA;AACA;AACA;AACA;AACA;EACEK,MA1EyB,kBA0ElBd,KA1EkB,EA0EX;IAAA;;IACZA,KAAK,CAACe,OAAN,CAAc,UAACT,IAAD,EAAU;MACtB,KAAI,CAACC,GAAL,CAASD,IAAT;IACD,CAFD;EAGD,CA9EwB;;EAgFzB;AACF;AACA;AACA;AACA;AACA;AACA;EACEU,MAvFyB,oBAuFhB;IACP,OAAO,qBAAc,KAAKhB,KAAnB,CAAP;EACD;AAzFwB,CAA3B;eA4FeH,kB"}
@@ -1 +1 @@
1
- {"version":3,"names":["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;eAEe;EACbA,QAAQ,EAAE;IACRC,QAAQ,EAAE,IAAIC,IAAJ,CAAS,IAAIA,IAAJ,GAAWC,OAAX,CAAmB,IAAID,IAAJ,GAAWE,OAAX,KAAuB,CAA1C,CAAT,CADF;IAERC,MAAM,EAAE,IAAIH,IAAJ,CAAS,IAAIA,IAAJ,GAAWC,OAAX,CAAmB,IAAID,IAAJ,GAAWE,OAAX,KAAuB,CAA1C,CAAT;EAFA;AADG,C"}
1
+ {"version":3,"names":["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;eAEe;EACbA,QAAQ,EAAE;IACRC,QAAQ,EAAE,IAAIC,IAAJ,CAAS,IAAIA,IAAJ,GAAWC,OAAX,CAAmB,IAAID,IAAJ,GAAWE,OAAX,KAAuB,CAA1C,CAAT,CADF;IAERC,MAAM,EAAE,IAAIH,IAAJ,CAAS,IAAIA,IAAJ,GAAWC,OAAX,CAAmB,IAAID,IAAJ,GAAWE,OAAX,KAAuB,CAA1C,CAAT;EAFA;AADG,C"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["registerInternalPlugin","Calendar","config","payloadTransformer","predicates","name","direction","test","ctx","response","resolve","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(has(response, 'body.encryptedNotes'));\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(has(response, 'body.encryptedParticipants'));\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(has(response, 'body.seriesId'));\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 ? object.encryptedParticipants.map((participant) => Promise.all([\n ctx.transform('decryptTextProp', 'encryptedEmailAddress', object.encryptionKeyUrl, participant),\n ctx.transform('decryptTextProp', 'encryptedName', object.encryptionKeyUrl, participant)\n ])) : [];\n\n // Decrypt meetingJoinInfo properties if meeting object contains meetingJoinInfo\n const decryptedMeetingJoinInfo = object.meetingJoinInfo ? Promise.all([\n ctx.transform('decryptTextProp', 'meetingJoinURI', object.encryptionKeyUrl, object.meetingJoinInfo),\n ctx.transform('decryptTextProp', 'meetingJoinURL', object.encryptionKeyUrl, object.meetingJoinInfo)\n ]) : [];\n\n const decryptedOrganizer = object.encryptedOrganizer ? Promise.all([\n ctx.transform('decryptTextProp', 'encryptedEmailAddress', object.encryptionKeyUrl, object.encryptedOrganizer),\n ctx.transform('decryptTextProp', 'encryptedName', object.encryptionKeyUrl, object.encryptedOrganizer)\n ]) : [];\n\n return Promise.all([\n ctx.transform('decryptTextProp', 'encryptedSubject', object.encryptionKeyUrl, object),\n ctx.transform('decryptTextProp', 'encryptedLocation', object.encryptionKeyUrl, object),\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 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) => Promise.all([\n ctx.transform('decryptTextProp', 'encryptedEmailAddress', object.encryptionKeyUrl, participant),\n ctx.transform('decryptTextProp', 'encryptedName', object.encryptionKeyUrl, participant)\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":["registerInternalPlugin","Calendar","config","payloadTransformer","predicates","name","direction","test","ctx","response","resolve","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(has(response, 'body.encryptedNotes'));\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(has(response, 'body.encryptedParticipants'));\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(has(response, 'body.seriesId'));\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.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["CalendarUtil","calculateEndTime","item","endTime","Date","start","getTime","durationMinutes"],"sources":["util.js"],"sourcesContent":["const CalendarUtil = {\n\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 {...item, endTime: new Date(new Date(item.start).getTime() + item.durationMinutes * 60000)};\n }\n};\n\nexport default CalendarUtil;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAMA,YAAY,GAAG;EAEnB;EACA;EACA;EACA;;EACA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEC,gBAdmB,4BAcFC,IAdE,EAcI;IACrB,uCAAWA,IAAX;MAAiBC,OAAO,EAAE,IAAIC,IAAJ,CAAS,IAAIA,IAAJ,CAASF,IAAI,CAACG,KAAd,EAAqBC,OAArB,KAAiCJ,IAAI,CAACK,eAAL,GAAuB,KAAjE;IAA1B;EACD;AAhBkB,CAArB;eAmBeP,Y"}
1
+ {"version":3,"names":["CalendarUtil","calculateEndTime","item","endTime","Date","start","getTime","durationMinutes"],"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,gBAbmB,4BAaFC,IAbE,EAaI;IACrB,uCACKA,IADL;MAEEC,OAAO,EAAE,IAAIC,IAAJ,CAAS,IAAIA,IAAJ,CAASF,IAAI,CAACG,KAAd,EAAqBC,OAArB,KAAiCJ,IAAI,CAACK,eAAL,GAAuB,KAAjE;IAFX;EAID;AAlBkB,CAArB;eAqBeP,Y"}
package/package.json CHANGED
@@ -19,20 +19,20 @@
19
19
  "envify"
20
20
  ]
21
21
  },
22
- "version": "3.0.0-beta.14",
22
+ "version": "3.0.0-beta.15",
23
23
  "devDependencies": {
24
- "@webex/test-helper-chai": "3.0.0-beta.14",
25
- "@webex/test-helper-mock-webex": "3.0.0-beta.14",
26
- "@webex/test-helper-retry": "3.0.0-beta.14",
27
- "@webex/test-helper-test-users": "3.0.0-beta.14",
24
+ "@webex/test-helper-chai": "3.0.0-beta.15",
25
+ "@webex/test-helper-mock-webex": "3.0.0-beta.15",
26
+ "@webex/test-helper-retry": "3.0.0-beta.15",
27
+ "@webex/test-helper-test-users": "3.0.0-beta.15",
28
28
  "sinon": "^9.2.4"
29
29
  },
30
30
  "dependencies": {
31
- "@webex/internal-plugin-calendar": "3.0.0-beta.14",
32
- "@webex/internal-plugin-conversation": "3.0.0-beta.14",
33
- "@webex/internal-plugin-device": "3.0.0-beta.14",
34
- "@webex/internal-plugin-encryption": "3.0.0-beta.14",
35
- "@webex/webex-core": "3.0.0-beta.14",
31
+ "@webex/internal-plugin-calendar": "3.0.0-beta.15",
32
+ "@webex/internal-plugin-conversation": "3.0.0-beta.15",
33
+ "@webex/internal-plugin-device": "3.0.0-beta.15",
34
+ "@webex/internal-plugin-encryption": "3.0.0-beta.15",
35
+ "@webex/webex-core": "3.0.0-beta.15",
36
36
  "btoa": "^1.2.1",
37
37
  "lodash": "^4.17.21",
38
38
  "uuid": "^3.3.2"
package/src/calendar.js CHANGED
@@ -3,28 +3,28 @@
3
3
  */
4
4
 
5
5
  /**
6
- * Calendar Item Create Event
7
- * Emitted when a calendar item has been added
8
- * @event calendar:meeting:create
9
- * @instance
10
- * @memberof Calendar
11
- */
6
+ * Calendar Item Create Event
7
+ * Emitted when a calendar item has been added
8
+ * @event calendar:meeting:create
9
+ * @instance
10
+ * @memberof Calendar
11
+ */
12
12
 
13
13
  /**
14
- * Calendar Item Update Event
15
- * Emitted when a calendar item has been updated
16
- * @event calendar:meeting:update
17
- * @instance
18
- * @memberof Calendar
19
- */
14
+ * Calendar Item Update Event
15
+ * Emitted when a calendar item has been updated
16
+ * @event calendar:meeting:update
17
+ * @instance
18
+ * @memberof Calendar
19
+ */
20
20
 
21
21
  /**
22
- * Calendar Item Update Event
23
- * Emitted when a calendar item has been deleted
24
- * @event calendar:meeting:delete
25
- * @instance
26
- * @memberof Calendar
27
- */
22
+ * Calendar Item Update Event
23
+ * Emitted when a calendar item has been deleted
24
+ * @event calendar:meeting:delete
25
+ * @instance
26
+ * @memberof Calendar
27
+ */
28
28
 
29
29
  /**
30
30
  * Calendar Registered Event
@@ -46,7 +46,13 @@ import btoa from 'btoa';
46
46
  import {WebexPlugin} from '@webex/webex-core';
47
47
 
48
48
  import CalendarCollection from './collection';
49
- import {CALENDAR_REGISTERED, CALENDAR_UNREGISTERED, CALENDAR_DELETE, CALENDAR_CREATE, CALENDAR_UPDATED} from './constants';
49
+ import {
50
+ CALENDAR_REGISTERED,
51
+ CALENDAR_UNREGISTERED,
52
+ CALENDAR_DELETE,
53
+ CALENDAR_CREATE,
54
+ CALENDAR_UPDATED,
55
+ } from './constants';
50
56
 
51
57
  const Calendar = WebexPlugin.extend({
52
58
  namespace: 'Calendar',
@@ -79,7 +85,8 @@ const Calendar = WebexPlugin.extend({
79
85
  return Promise.resolve();
80
86
  }
81
87
 
82
- return this.webex.internal.device.register()
88
+ return this.webex.internal.device
89
+ .register()
83
90
  .then(() => this.webex.internal.mercury.connect())
84
91
  .then(() => {
85
92
  this.listenForEvents();
@@ -110,7 +117,8 @@ const Calendar = WebexPlugin.extend({
110
117
 
111
118
  this.stopListeningForEvents();
112
119
 
113
- return this.webex.internal.mercury.disconnect()
120
+ return this.webex.internal.mercury
121
+ .disconnect()
114
122
  .then(() => this.webex.internal.device.unregister())
115
123
  .then(() => {
116
124
  this.trigger(CALENDAR_UNREGISTERED);
@@ -233,8 +241,7 @@ const Calendar = WebexPlugin.extend({
233
241
  * @returns {Promise} Resolves with a decrypted calendar event
234
242
  */
235
243
  processMeetingEvent(event) {
236
- return this.webex.transform('inbound', event)
237
- .then(() => event);
244
+ return this.webex.transform('inbound', event).then(() => event);
238
245
  },
239
246
 
240
247
  /**
@@ -246,7 +253,7 @@ const Calendar = WebexPlugin.extend({
246
253
  return this.request({
247
254
  method: 'GET',
248
255
  service: 'calendar',
249
- resource: `calendarEvents/${btoa(id)}/participants`
256
+ resource: `calendarEvents/${btoa(id)}/participants`,
250
257
  });
251
258
  },
252
259
 
@@ -259,7 +266,7 @@ const Calendar = WebexPlugin.extend({
259
266
  return this.request({
260
267
  method: 'GET',
261
268
  service: 'calendar',
262
- resource: `calendarEvents/${btoa(id)}/notes`
269
+ resource: `calendarEvents/${btoa(id)}/notes`,
263
270
  });
264
271
  },
265
272
 
@@ -273,12 +280,13 @@ const Calendar = WebexPlugin.extend({
273
280
  list(options) {
274
281
  options = options || {};
275
282
 
276
- return this.webex.request({
277
- method: 'GET',
278
- service: 'calendar',
279
- resource: 'calendarEvents',
280
- qs: options
281
- })
283
+ return this.webex
284
+ .request({
285
+ method: 'GET',
286
+ service: 'calendar',
287
+ resource: 'calendarEvents',
288
+ qs: options,
289
+ })
282
290
  .then((res) => {
283
291
  const meetingObjects = res.body.items;
284
292
  const promises = [];
@@ -286,27 +294,24 @@ const Calendar = WebexPlugin.extend({
286
294
  meetingObjects.forEach((meeting) => {
287
295
  if (!meeting.encryptedNotes) {
288
296
  promises.push(
289
- this.getNotes(meeting.id)
290
- .then((notesResponse) => {
291
- meeting.encryptedNotes = notesResponse.body && notesResponse.body.encryptedNotes;
292
- })
297
+ this.getNotes(meeting.id).then((notesResponse) => {
298
+ meeting.encryptedNotes = notesResponse.body && notesResponse.body.encryptedNotes;
299
+ })
293
300
  );
294
301
  }
295
302
 
296
303
  if (!meeting.encryptedParticipants) {
297
304
  promises.push(
298
- this.getParticipants(meeting.id)
299
- .then((notesResponse) => {
300
- meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;
301
- })
305
+ this.getParticipants(meeting.id).then((notesResponse) => {
306
+ meeting.encryptedParticipants = notesResponse.body.encryptedParticipants;
307
+ })
302
308
  );
303
309
  }
304
310
  });
305
311
 
306
- return Promise.all(promises)
307
- .then(() => meetingObjects);
312
+ return Promise.all(promises).then(() => meetingObjects);
308
313
  });
309
- }
314
+ },
310
315
  });
311
316
 
312
317
  export default Calendar;
package/src/collection.js CHANGED
@@ -27,7 +27,7 @@ const CalendarCollection = {
27
27
  */
28
28
  getBy(key, value) {
29
29
  if (key && value) {
30
- return find(this.items, (item) => (item[key] === value));
30
+ return find(this.items, (item) => item[key] === value);
31
31
  }
32
32
 
33
33
  return null;
@@ -58,7 +58,6 @@ const CalendarCollection = {
58
58
  this.items = {};
59
59
  },
60
60
 
61
-
62
61
  /**
63
62
  * @param {Id} id is the id for the calendar item to be removed
64
63
  * @returns {Any} calendar item which got removed
@@ -95,8 +94,7 @@ const CalendarCollection = {
95
94
  */
96
95
  getAll() {
97
96
  return Object.values(this.items);
98
- }
99
-
97
+ },
100
98
  };
101
99
 
102
100
  export default CalendarCollection;
package/src/config.js CHANGED
@@ -5,6 +5,6 @@
5
5
  export default {
6
6
  calendar: {
7
7
  fromDate: new Date(new Date().setDate(new Date().getDate() - 1)),
8
- toDate: new Date(new Date().setDate(new Date().getDate() + 7))
9
- }
8
+ toDate: new Date(new Date().setDate(new Date().getDate() + 7)),
9
+ },
10
10
  };