@webex/calling 3.0.0-next.0 → 3.0.0-next.10

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.
Files changed (67) hide show
  1. package/CHANGELOG.md +1403 -0
  2. package/dist/CallHistory/CallHistory.js +1 -3
  3. package/dist/CallHistory/CallHistory.js.map +1 -1
  4. package/dist/CallHistory/types.js.map +1 -1
  5. package/dist/CallSettings/CallSettings.js +0 -2
  6. package/dist/CallSettings/CallSettings.js.map +1 -1
  7. package/dist/CallSettings/types.js.map +1 -1
  8. package/dist/CallingClient/CallingClient.js +27 -12
  9. package/dist/CallingClient/CallingClient.js.map +1 -1
  10. package/dist/CallingClient/calling/CallerId/types.js.map +1 -1
  11. package/dist/CallingClient/calling/call.js +4 -10
  12. package/dist/CallingClient/calling/call.js.map +1 -1
  13. package/dist/CallingClient/calling/call.test.js +4 -2
  14. package/dist/CallingClient/calling/call.test.js.map +1 -1
  15. package/dist/CallingClient/calling/callManager.js +0 -9
  16. package/dist/CallingClient/calling/callManager.js.map +1 -1
  17. package/dist/CallingClient/calling/types.js.map +1 -1
  18. package/dist/CallingClient/line/index.js +2 -1
  19. package/dist/CallingClient/line/index.js.map +1 -1
  20. package/dist/CallingClient/line/types.js +3 -0
  21. package/dist/CallingClient/line/types.js.map +1 -1
  22. package/dist/CallingClient/registration/register.js +12 -40
  23. package/dist/CallingClient/registration/register.js.map +1 -1
  24. package/dist/CallingClient/registration/types.js.map +1 -1
  25. package/dist/CallingClient/types.js.map +1 -1
  26. package/dist/Contacts/ContactsClient.js +8 -2
  27. package/dist/Contacts/ContactsClient.js.map +1 -1
  28. package/dist/Contacts/types.js +3 -0
  29. package/dist/Contacts/types.js.map +1 -1
  30. package/dist/Voicemail/Voicemail.js +18 -21
  31. package/dist/Voicemail/Voicemail.js.map +1 -1
  32. package/dist/Voicemail/WxCallBackendConnector.js +1 -1
  33. package/dist/Voicemail/WxCallBackendConnector.js.map +1 -1
  34. package/dist/Voicemail/types.js.map +1 -1
  35. package/dist/api.js +43 -20
  36. package/dist/api.js.map +1 -1
  37. package/dist/module/CallingClient/calling/callManager.js +0 -6
  38. package/dist/module/Contacts/ContactsClient.js +3 -0
  39. package/dist/module/api.js +6 -5
  40. package/dist/types/CallHistory/CallHistory.d.ts.map +1 -1
  41. package/dist/types/CallSettings/CallSettings.d.ts.map +1 -1
  42. package/dist/types/CallSettings/types.d.ts.map +1 -1
  43. package/dist/types/CallingClient/CallingClient.d.ts.map +1 -1
  44. package/dist/types/CallingClient/calling/CallerId/types.d.ts.map +1 -1
  45. package/dist/types/CallingClient/calling/call.d.ts.map +1 -1
  46. package/dist/types/CallingClient/calling/callManager.d.ts +0 -1
  47. package/dist/types/CallingClient/calling/callManager.d.ts.map +1 -1
  48. package/dist/types/CallingClient/calling/types.d.ts +29 -30
  49. package/dist/types/CallingClient/calling/types.d.ts.map +1 -1
  50. package/dist/types/CallingClient/line/index.d.ts.map +1 -1
  51. package/dist/types/CallingClient/line/types.d.ts +7 -7
  52. package/dist/types/CallingClient/line/types.d.ts.map +1 -1
  53. package/dist/types/CallingClient/registration/register.d.ts.map +1 -1
  54. package/dist/types/CallingClient/registration/types.d.ts +13 -13
  55. package/dist/types/CallingClient/registration/types.d.ts.map +1 -1
  56. package/dist/types/CallingClient/types.d.ts +6 -4
  57. package/dist/types/CallingClient/types.d.ts.map +1 -1
  58. package/dist/types/Contacts/ContactsClient.d.ts +2 -1
  59. package/dist/types/Contacts/ContactsClient.d.ts.map +1 -1
  60. package/dist/types/Contacts/types.d.ts +2 -0
  61. package/dist/types/Contacts/types.d.ts.map +1 -1
  62. package/dist/types/Voicemail/Voicemail.d.ts.map +1 -1
  63. package/dist/types/Voicemail/types.d.ts +10 -10
  64. package/dist/types/Voicemail/types.d.ts.map +1 -1
  65. package/dist/types/api.d.ts +10 -10
  66. package/dist/types/api.d.ts.map +1 -1
  67. package/package.json +4 -4
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_createClass2","value","_decryptContactDetail","_asyncToGenerator2","_regenerator","mark","_callee","contactDetails","_this","decryptedContactDetail","decryptedValues","wrap","_callee$","_context","prev","next","_toConsumableArray2","_promise","all","map","detail","internal","encryption","decryptText","sent","decryptedValue","index","abrupt","stop","decryptContactDetail","_x","_x2","_encryptContactDetail","_callee2","_this2","encryptedContactDetail","encryptedValues","_callee2$","_context2","encryptText","encryptedValue","encryptContactDetail","_x3","_x4","_encryptContact","_callee5","contact","_this3","encryptedContact","encryptionPromises","encryptedFieldsList","_callee5$","_context5","_values","encryptedFields","_ref","_callee4","field","plaintextAddressInfo","encryptedAddressInfo","encryptedAddressInfoPromises","plainTextDetails","encryptedDetails","_callee4$","_context4","t0","ADDRESS_INFO","EMAILS","PHONE_NUMBERS","SIP_ADDRESSES","addressInfo","_entries","_ref3","_callee3","_ref2","_ref4","_callee3$","_context3","_slicedToArray2","t1","_x7","t2","fromEntries","call","includes","_x6","_ref5","_ref6","encryptContact","_x5","_decryptContact","_callee8","_this4","decryptedContact","decryptionPromises","decryptedFieldsList","_callee8$","_context8","_ref7","_callee7","decryptedAddressInfo","decryptedAddressInfoPromises","decryptedDetails","_callee7$","_context7","_ref9","_callee6","_ref8","_ref10","_callee6$","_context6","_x10","_x9","_ref11","_ref12","decryptContact","_x8","_fetchContactFromDSS","_callee9","contactsDataMap","_this5","contactList","dssResult","_loop","_callee9$","_context10","dss","lookup","ids","_keys","contactId","displayName","emails","phoneNumbers","sipAddresses","photos","_contact$additionalIn","department","firstName","identityManager","jobTitle","lastName","manager","_contactsDataMap$cont","contactType","avatarUrlDomain","ownerId","avatarURL","addedPhoneNumbers","decryptedPhoneNumbers","addedSipAddresses","decryptedSipAddresses","cloudContact","_loop$","_context9","identity","additionalInfo","number","address","title","delegateYield","fetchContactFromDSS","_x11","_getContacts","_callee11","_this6","loggerContext","response","responseBody","cloudContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context12","file","method","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","ContactType","CUSTOM","CLOUD","_ref13","_callee10","group","idx","_callee10$","_context11","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context13","createNewEncryptionKeyUrl","name","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context14","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","_callee14$","_context15","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context16","find","warn","error","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context17","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","decryptedContacts","_this$contacts","_this$contacts2","_callee17$","_context18","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context19","deleteContact","_x19","exports","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable valid-jsdoc */\n/* eslint-disable no-await-in-loop */\nimport {FAILURE_MESSAGE, STATUS_CODE, SUCCESS_MESSAGE} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail} from '../common/types';\nimport {LoggerInterface} from '../Voicemail/types';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport SDKConnector from '../SDKConnector';\n\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\n USERS,\n encryptedFields,\n} from './constants';\nimport {\n Contact,\n ContactIdContactInfo,\n ContactList,\n ContactResponse,\n ContactType,\n IContacts,\n ContactGroup,\n GroupType,\n} from './types';\n\nimport {serviceErrorCodeHandler} from '../common/Utils';\n\n/**\n * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.\n *\n * This code snippet demonstrates how to create an instance of `ContactClient` using webex and logger.\n *\n * Example\n * ```javascript\n * const contactClient = createContactsClient(webex, logger);\n * ```\n *\n * @implements {IContacts}\n */\nexport class ContactsClient implements IContacts {\n private sdkConnector: ISDKConnector;\n\n private encryptionKeyUrl: string;\n\n private webex: WebexSDK;\n\n private groups: ContactGroup[] | undefined;\n\n private contacts: Contact[] | undefined;\n\n private defaultGroupId: string;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n\n this.encryptionKeyUrl = '';\n this.groups = undefined;\n this.contacts = undefined;\n this.defaultGroupId = '';\n\n log.setLogger(logger.level, CONTACTS_FILE);\n }\n\n /**\n * Decrypt emails, phoneNumbers, sipAddresses.\n */\n private async decryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const decryptedContactDetail = [...contactDetails];\n\n const decryptedValues = await Promise.all(\n decryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.decryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n decryptedValues.forEach((decryptedValue, index) => {\n decryptedContactDetail[index].value = decryptedValue;\n });\n\n return decryptedContactDetail;\n }\n\n /**\n * Encrypt emails, phoneNumbers, sipAddresses.\n *\n */\n private async encryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const encryptedContactDetail = [...contactDetails];\n\n const encryptedValues = await Promise.all(\n encryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.encryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n encryptedValues.forEach((encryptedValue, index) => {\n encryptedContactDetail[index].value = encryptedValue;\n });\n\n return encryptedContactDetail;\n }\n\n /**\n * Encrypts a given contact.\n */\n private async encryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const encryptedContact: Contact = {...contact};\n\n const encryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = encryptedContact.addressInfo;\n let encryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const encryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.encryptText(encryptionKeyUrl, value),\n ]\n );\n\n encryptedAddressInfo = Object.fromEntries(\n await Promise.all(encryptedAddressInfoPromises)\n );\n }\n\n return [field, encryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = encryptedContact[field];\n let encryptedDetails;\n\n if (plainTextDetails) {\n encryptedDetails = await this.encryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, encryptedDetails];\n }\n default: {\n let encryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && encryptedContact[field]) {\n encryptedValue = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrl,\n encryptedContact[field]\n );\n }\n\n return [field, encryptedValue];\n }\n }\n });\n\n const encryptedFieldsList = await Promise.all(encryptionPromises);\n\n encryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n encryptedContact[field] = value;\n }\n });\n\n return encryptedContact;\n }\n\n /**\n * Decrypts a given contact.\n */\n private async decryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const decryptedContact: Contact = {...contact};\n\n const decryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = decryptedContact.addressInfo;\n let decryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const decryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value),\n ]\n );\n\n decryptedAddressInfo = Object.fromEntries(\n await Promise.all(decryptedAddressInfoPromises)\n );\n }\n\n return [field, decryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = decryptedContact[field];\n let decryptedDetails;\n\n if (plainTextDetails) {\n decryptedDetails = await this.decryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, decryptedDetails];\n }\n default: {\n let decryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && decryptedContact[field]) {\n decryptedValue = await this.webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n decryptedContact[field]\n );\n }\n\n return [field, decryptedValue];\n }\n }\n });\n\n const decryptedFieldsList = await Promise.all(decryptionPromises);\n\n decryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n decryptedContact[field] = value;\n }\n });\n\n return decryptedContact;\n }\n\n /**\n * Fetches contacts from DSS.\n */\n private async fetchContactFromDSS(contactsDataMap: ContactIdContactInfo): Promise<Contact[]> {\n const contactList = [];\n const dssResult = await this.webex.internal.dss.lookup({ids: Object.keys(contactsDataMap)});\n\n for (let i = 0; i < dssResult.length; i += 1) {\n const contact = dssResult[i];\n const contactId = contact.identity;\n const {displayName, emails, phoneNumbers, sipAddresses, photos} = contact;\n const {department, firstName, identityManager, jobTitle, lastName} = contact.additionalInfo;\n const manager =\n identityManager && identityManager.displayName ? identityManager.displayName : undefined;\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[contactId];\n let avatarURL = '';\n\n if (photos.length) {\n avatarURL = photos[0].value;\n }\n\n const addedPhoneNumbers = contactsDataMap[contactId].phoneNumbers;\n\n if (addedPhoneNumbers) {\n const decryptedPhoneNumbers = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedPhoneNumbers\n );\n\n decryptedPhoneNumbers.forEach((number) => phoneNumbers.push(number));\n }\n\n const addedSipAddresses = contactsDataMap[contactId].sipAddresses;\n\n if (addedSipAddresses) {\n const decryptedSipAddresses = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedSipAddresses\n );\n\n decryptedSipAddresses.forEach((address) => sipAddresses.push(address));\n }\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId,\n contactType,\n department,\n displayName,\n emails,\n encryptionKeyUrl,\n firstName,\n groups,\n lastName,\n manager,\n ownerId,\n phoneNumbers,\n sipAddresses,\n title: jobTitle,\n };\n\n contactList.push(cloudContact);\n }\n\n return contactList;\n }\n\n /**\n * Returns list of contacts.\n */\n public async getContacts(): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'getContacts',\n };\n\n const contactList: Contact[] = [];\n const contactsDataMap: ContactIdContactInfo = {};\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.GET,\n });\n\n const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\n for (let i = 0; i < contacts.length; i += 1) {\n const contact = contacts[i];\n\n if (contact.contactType === ContactType.CUSTOM) {\n const decryptedContact = await this.decryptContact(contact);\n\n contactList.push(decryptedContact);\n } else if (contact.contactType === ContactType.CLOUD && contact.contactId) {\n contactsDataMap[contact.contactId] = contact;\n }\n }\n\n if (Object.keys(contactsDataMap).length) {\n const cloudContacts = await this.fetchContactFromDSS(contactsDataMap);\n\n contactList.push(...cloudContacts);\n }\n\n await Promise.all(\n groups.map(async (group, idx) => {\n groups[idx].displayName = await this.webex.internal.encryption.decryptText(\n group.encryptionKeyUrl,\n group.displayName\n );\n })\n );\n\n this.groups = groups;\n this.contacts = contactList;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contacts: contactList,\n groups,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a new KMS Resource Object (KRO) and Content Key (CK) which is used for encryption.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async createNewEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createNewEncryptionKeyUrl.name,\n };\n\n let unboundedKeyUri = '';\n\n log.info('Requesting kms for a new KRO and key', loggerContext);\n const unboundedKeys = await this.webex.internal.encryption.kms.createUnboundKeys({count: 1});\n\n unboundedKeyUri = unboundedKeys[0].uri;\n this.webex.internal.encryption.kms.createResource({keyUris: [unboundedKeyUri]});\n\n return unboundedKeyUri;\n }\n\n /**\n * Fetches the encryptionKeyUrl from one of the groups. Creates a new key and default group if there is no data.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async fetchEncryptionKeyUrl(): Promise<string> {\n if (this.encryptionKeyUrl) {\n return this.encryptionKeyUrl;\n }\n // istanbul ignore else\n if (this.groups === undefined) {\n this.getContacts();\n }\n // istanbul ignore else\n if (this.groups && this.groups.length) {\n /** Use the encryptionKeyUrl of any one of the groups */\n return this.groups[0].encryptionKeyUrl;\n }\n\n this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();\n log.info(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: this.fetchEncryptionKeyUrl.name,\n });\n const response: ContactResponse = await this.createContactGroup(\n DEFAULT_GROUP_NAME,\n this.encryptionKeyUrl\n );\n\n if (response.data.group?.groupId) {\n this.defaultGroupId = response.data.group?.groupId;\n }\n\n return this.encryptionKeyUrl;\n }\n\n /**\n * Fetches a default group.\n *\n * @returns GroupId of default group.\n */\n private async fetchDefaultGroup(): Promise<string> {\n if (this.defaultGroupId) {\n return this.defaultGroupId;\n }\n\n /* Check the groups list and determine the defaultGroupId */\n if (this.groups && this.groups.length) {\n for (let i = 0; i < this.groups.length; i += 1) {\n if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {\n this.defaultGroupId = this.groups[i].groupId;\n\n return this.defaultGroupId;\n }\n }\n }\n\n log.info('No default group found.', {\n file: CONTACTS_FILE,\n method: this.fetchDefaultGroup.name,\n });\n\n const response: ContactResponse = await this.createContactGroup(DEFAULT_GROUP_NAME);\n\n const {group} = response.data;\n\n if (group) {\n return group.groupId;\n }\n\n return '';\n }\n\n /**\n * Creates a personal contact group.\n * Also creates a KRO, if there aren't any groups.\n * @param displayName - Name of the group to create.\n * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.\n * @param groupType - Type of the group to create.\n */\n public async createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContactGroup.name,\n };\n\n log.info(`Creating contact group ${displayName}`, loggerContext);\n\n const encryptionKeyUrlFinal = encryptionKeyUrl || (await this.fetchEncryptionKeyUrl());\n\n if (this.groups === undefined) {\n await this.getContacts();\n }\n\n if (this.groups && this.groups.length) {\n const isExistingGroup = this.groups.find((group) => {\n return group.displayName === displayName;\n });\n\n if (isExistingGroup) {\n log.warn(`Group name ${displayName} already exists.`, loggerContext);\n\n return {\n statusCode: 400 as number,\n data: {error: 'Group displayName already exists'},\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const encryptedDisplayName = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrlFinal,\n displayName\n );\n\n const groupInfo = {\n schemas: CONTACTS_SCHEMA,\n displayName: encryptedDisplayName,\n groupType: groupType || GroupType.NORMAL,\n encryptionKeyUrl: encryptionKeyUrlFinal,\n };\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`,\n method: HTTP_METHODS.POST,\n body: groupInfo,\n });\n\n const group = response.body as ContactGroup;\n\n group.displayName = displayName;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n group,\n },\n message: SUCCESS_MESSAGE,\n };\n\n this.groups?.push(group);\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Unable to create contact group.', loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Deletes a contact group.\n * @param groupId - GroupId of the group to delete.\n */\n public async deleteContactGroup(groupId: string) {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContactGroup.name,\n };\n\n try {\n log.info(`Deleting contact group: ${groupId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const groupToDelete = this.groups?.findIndex((group) => group.groupId === groupId);\n\n if (groupToDelete !== undefined && groupToDelete !== -1) {\n this.groups?.splice(groupToDelete, 1);\n }\n\n if (!this.groups?.length) {\n this.defaultGroupId = '';\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact group ${groupId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a custom contact.\n * @param contactInfo - Contact object to create.\n */\n public async createContact(contactInfo: Contact): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n };\n\n log.info(`Request to create contact: contactType: ${contactInfo.contactType}`, loggerContext);\n\n try {\n const contact = {...contactInfo};\n\n if (!contact.encryptionKeyUrl) {\n contact.encryptionKeyUrl = await this.fetchEncryptionKeyUrl();\n }\n\n if (!contact.groups || contact.groups.length === 0) {\n /** Fetch the groupId for the default group if not create */\n const defaultGroupId = await this.fetchDefaultGroup();\n\n contact.groups = [defaultGroupId];\n }\n\n contact.schemas = CONTACTS_SCHEMA;\n let requestBody = {};\n\n switch (contact.contactType) {\n case ContactType.CUSTOM: {\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n case ContactType.CLOUD: {\n if (!contact.contactId) {\n return {\n statusCode: 400 as number,\n data: {\n error: 'contactId is required for contactType:CLOUD.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n default: {\n return {\n statusCode: 400 as number,\n data: {\n error: 'Unknown contactType received.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.POST,\n body: requestBody,\n });\n\n const newContact = response.body as Contact;\n\n contact.contactId = newContact.contactId;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contact,\n },\n message: SUCCESS_MESSAGE,\n };\n\n if (contact.contactType === ContactType.CLOUD) {\n const decryptedContacts = await this.fetchContactFromDSS(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo\n );\n\n if (decryptedContacts.length && decryptedContacts[0]) {\n this.contacts?.push(decryptedContacts[0]);\n }\n } else {\n this.contacts?.push(contact);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Failed to create contact.', {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n });\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Delete a contact.\n * @param contactId - ContactId of the contact to delete.\n */\n public async deleteContact(contactId: string): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContact.name,\n };\n\n try {\n log.info(`Deleting contact : ${contactId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}/${contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const contactToDelete = this.contacts?.findIndex(\n (contact) => contact.contactId === contactId\n );\n\n if (contactToDelete !== undefined && contactToDelete !== -1) {\n this.contacts?.splice(contactToDelete, 1);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact ${contactId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n}\n\n/**\n * Creates a ContactsClient instance\n *\n * @param {WebexSDK} webex - `Webex SDK`instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createContactsClient = (webex: WebexSDK, logger: LoggerInterface): IContacts =>\n new ContactsClient(webex, logger);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","object","enumerableOnly","keys","_Object$keys2","_Object$getOwnPropertySymbols","symbols","filter","sym","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","target","i","arguments","length","source","Object","forEach","key","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_createClass2","value","_decryptContactDetail","_asyncToGenerator2","_regenerator","mark","_callee","contactDetails","_this","decryptedContactDetail","decryptedValues","wrap","_callee$","_context","prev","next","_toConsumableArray2","_promise","all","map","detail","internal","encryption","decryptText","sent","decryptedValue","index","abrupt","stop","decryptContactDetail","_x","_x2","_encryptContactDetail","_callee2","_this2","encryptedContactDetail","encryptedValues","_callee2$","_context2","encryptText","encryptedValue","encryptContactDetail","_x3","_x4","_encryptContact","_callee5","contact","_this3","encryptedContact","encryptionPromises","encryptedFieldsList","_callee5$","_context5","_values","encryptedFields","_ref","_callee4","field","plaintextAddressInfo","encryptedAddressInfo","encryptedAddressInfoPromises","plainTextDetails","encryptedDetails","_callee4$","_context4","t0","ADDRESS_INFO","EMAILS","PHONE_NUMBERS","SIP_ADDRESSES","addressInfo","_entries","_ref3","_callee3","_ref2","_ref4","_callee3$","_context3","_slicedToArray2","t1","_x7","t2","fromEntries","call","includes","_x6","_ref5","_ref6","encryptContact","_x5","_decryptContact","_callee8","_this4","decryptedContact","decryptionPromises","decryptedFieldsList","_callee8$","_context8","_ref7","_callee7","decryptedAddressInfo","decryptedAddressInfoPromises","decryptedDetails","_callee7$","_context7","_ref9","_callee6","_ref8","_ref10","_callee6$","_context6","_x10","_x9","_ref11","_ref12","decryptContact","_x8","_fetchContactFromDSS","_callee9","contactsDataMap","_this5","contactList","dssResult","_loop","_callee9$","_context10","dss","lookup","ids","_keys","contactId","displayName","emails","phoneNumbers","sipAddresses","photos","_contact$additionalIn","department","firstName","identityManager","jobTitle","lastName","manager","_contactsDataMap$cont","contactType","avatarUrlDomain","ownerId","avatarURL","addedPhoneNumbers","decryptedPhoneNumbers","addedSipAddresses","decryptedSipAddresses","cloudContact","_loop$","_context9","identity","additionalInfo","number","address","title","delegateYield","fetchContactFromDSS","_x11","_getContacts","_callee11","_this6","loggerContext","response","responseBody","cloudContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context12","file","method","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","ContactType","CUSTOM","CLOUD","_ref13","_callee10","group","idx","_callee10$","_context11","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context13","createNewEncryptionKeyUrl","name","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context14","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","_callee14$","_context15","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context16","find","warn","error","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context17","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","decryptedContacts","_this$contacts","_this$contacts2","_callee17$","_context18","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context19","deleteContact","_x19","getSDKConnector","exports","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {FAILURE_MESSAGE, STATUS_CODE, SUCCESS_MESSAGE} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail} from '../common/types';\nimport {LoggerInterface} from '../Voicemail/types';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport SDKConnector from '../SDKConnector';\n\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACTS_SCHEMA,\n CONTACT_FILTER,\n DEFAULT_GROUP_NAME,\n ENCRYPT_FILTER,\n GROUP_FILTER,\n USERS,\n encryptedFields,\n} from './constants';\nimport {\n Contact,\n ContactIdContactInfo,\n ContactList,\n ContactResponse,\n ContactType,\n IContacts,\n ContactGroup,\n GroupType,\n} from './types';\n\nimport {serviceErrorCodeHandler} from '../common/Utils';\n\n/**\n * `ContactsClient` module is designed to offer a set of APIs for retrieving and updating contacts and groups from the contacts-service.\n *\n * This code snippet demonstrates how to create an instance of `ContactClient` using webex and logger.\n *\n * Example\n * ```javascript\n * const contactClient = createContactsClient(webex, logger);\n * ```\n */\nexport class ContactsClient implements IContacts {\n private sdkConnector: ISDKConnector;\n\n private encryptionKeyUrl: string;\n\n private webex: WebexSDK;\n\n private groups: ContactGroup[] | undefined;\n\n private contacts: Contact[] | undefined;\n\n private defaultGroupId: string;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, logger: LoggerInterface) {\n this.sdkConnector = SDKConnector;\n\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n\n this.webex = this.sdkConnector.getWebex();\n\n this.encryptionKeyUrl = '';\n this.groups = undefined;\n this.contacts = undefined;\n this.defaultGroupId = '';\n\n log.setLogger(logger.level, CONTACTS_FILE);\n }\n\n /**\n * Decrypt emails, phoneNumbers, sipAddresses.\n */\n private async decryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const decryptedContactDetail = [...contactDetails];\n\n const decryptedValues = await Promise.all(\n decryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.decryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n decryptedValues.forEach((decryptedValue, index) => {\n decryptedContactDetail[index].value = decryptedValue;\n });\n\n return decryptedContactDetail;\n }\n\n /**\n * Encrypt emails, phoneNumbers, sipAddresses.\n *\n */\n private async encryptContactDetail(\n encryptionKeyUrl: string,\n contactDetails: ContactDetail[]\n ): Promise<ContactDetail[]> {\n const encryptedContactDetail = [...contactDetails];\n\n const encryptedValues = await Promise.all(\n encryptedContactDetail.map((detail) =>\n this.webex.internal.encryption.encryptText(encryptionKeyUrl, detail.value)\n )\n );\n\n encryptedValues.forEach((encryptedValue, index) => {\n encryptedContactDetail[index].value = encryptedValue;\n });\n\n return encryptedContactDetail;\n }\n\n /**\n * Encrypts a given contact.\n */\n private async encryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const encryptedContact: Contact = {...contact};\n\n const encryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = encryptedContact.addressInfo;\n let encryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const encryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.encryptText(encryptionKeyUrl, value),\n ]\n );\n\n encryptedAddressInfo = Object.fromEntries(\n await Promise.all(encryptedAddressInfoPromises)\n );\n }\n\n return [field, encryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = encryptedContact[field];\n let encryptedDetails;\n\n if (plainTextDetails) {\n encryptedDetails = await this.encryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, encryptedDetails];\n }\n default: {\n let encryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && encryptedContact[field]) {\n encryptedValue = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrl,\n encryptedContact[field]\n );\n }\n\n return [field, encryptedValue];\n }\n }\n });\n\n const encryptedFieldsList = await Promise.all(encryptionPromises);\n\n encryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n encryptedContact[field] = value;\n }\n });\n\n return encryptedContact;\n }\n\n /**\n * Decrypts a given contact.\n */\n private async decryptContact(contact: Contact): Promise<Contact> {\n const {encryptionKeyUrl} = contact;\n const decryptedContact: Contact = {...contact};\n\n const decryptionPromises = Object.values(encryptedFields).map(async (field) => {\n switch (field) {\n case encryptedFields.ADDRESS_INFO: {\n const plaintextAddressInfo = decryptedContact.addressInfo;\n let decryptedAddressInfo;\n\n if (plaintextAddressInfo) {\n const decryptedAddressInfoPromises = Object.entries(plaintextAddressInfo).map(\n async ([key, value]) => [\n key,\n await this.webex.internal.encryption.decryptText(encryptionKeyUrl, value),\n ]\n );\n\n decryptedAddressInfo = Object.fromEntries(\n await Promise.all(decryptedAddressInfoPromises)\n );\n }\n\n return [field, decryptedAddressInfo];\n }\n case encryptedFields.EMAILS:\n case encryptedFields.PHONE_NUMBERS:\n case encryptedFields.SIP_ADDRESSES: {\n const plainTextDetails = decryptedContact[field];\n let decryptedDetails;\n\n if (plainTextDetails) {\n decryptedDetails = await this.decryptContactDetail(encryptionKeyUrl, plainTextDetails);\n }\n\n return [field, decryptedDetails];\n }\n default: {\n let decryptedValue;\n\n if (Object.values(encryptedFields).includes(field) && decryptedContact[field]) {\n decryptedValue = await this.webex.internal.encryption.decryptText(\n encryptionKeyUrl,\n decryptedContact[field]\n );\n }\n\n return [field, decryptedValue];\n }\n }\n });\n\n const decryptedFieldsList = await Promise.all(decryptionPromises);\n\n decryptedFieldsList.forEach(([field, value]) => {\n if (value !== undefined) {\n decryptedContact[field] = value;\n }\n });\n\n return decryptedContact;\n }\n\n /**\n * Fetches contacts from DSS.\n */\n private async fetchContactFromDSS(contactsDataMap: ContactIdContactInfo): Promise<Contact[]> {\n const contactList = [];\n const dssResult = await this.webex.internal.dss.lookup({ids: Object.keys(contactsDataMap)});\n\n for (let i = 0; i < dssResult.length; i += 1) {\n const contact = dssResult[i];\n const contactId = contact.identity;\n const {displayName, emails, phoneNumbers, sipAddresses, photos} = contact;\n const {department, firstName, identityManager, jobTitle, lastName} = contact.additionalInfo;\n const manager =\n identityManager && identityManager.displayName ? identityManager.displayName : undefined;\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[contactId];\n let avatarURL = '';\n\n if (photos.length) {\n avatarURL = photos[0].value;\n }\n\n const addedPhoneNumbers = contactsDataMap[contactId].phoneNumbers;\n\n if (addedPhoneNumbers) {\n const decryptedPhoneNumbers = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedPhoneNumbers\n );\n\n decryptedPhoneNumbers.forEach((number) => phoneNumbers.push(number));\n }\n\n const addedSipAddresses = contactsDataMap[contactId].sipAddresses;\n\n if (addedSipAddresses) {\n const decryptedSipAddresses = await this.decryptContactDetail(\n encryptionKeyUrl,\n addedSipAddresses\n );\n\n decryptedSipAddresses.forEach((address) => sipAddresses.push(address));\n }\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId,\n contactType,\n department,\n displayName,\n emails,\n encryptionKeyUrl,\n firstName,\n groups,\n lastName,\n manager,\n ownerId,\n phoneNumbers,\n sipAddresses,\n title: jobTitle,\n };\n\n contactList.push(cloudContact);\n }\n\n return contactList;\n }\n\n /**\n * Returns list of contacts.\n */\n public async getContacts(): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'getContacts',\n };\n\n const contactList: Contact[] = [];\n const contactsDataMap: ContactIdContactInfo = {};\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.GET,\n });\n\n const responseBody = response.body as ContactList;\n\n if (!responseBody) {\n throw new Error(`${response}`);\n }\n\n const {contacts, groups} = responseBody;\n\n for (let i = 0; i < contacts.length; i += 1) {\n const contact = contacts[i];\n\n if (contact.contactType === ContactType.CUSTOM) {\n const decryptedContact = await this.decryptContact(contact);\n\n contactList.push(decryptedContact);\n } else if (contact.contactType === ContactType.CLOUD && contact.contactId) {\n contactsDataMap[contact.contactId] = contact;\n }\n }\n\n if (Object.keys(contactsDataMap).length) {\n const cloudContacts = await this.fetchContactFromDSS(contactsDataMap);\n\n contactList.push(...cloudContacts);\n }\n\n await Promise.all(\n groups.map(async (group, idx) => {\n groups[idx].displayName = await this.webex.internal.encryption.decryptText(\n group.encryptionKeyUrl,\n group.displayName\n );\n })\n );\n\n this.groups = groups;\n this.contacts = contactList;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contacts: contactList,\n groups,\n },\n message: SUCCESS_MESSAGE,\n };\n\n return contactResponse;\n } catch (err: unknown) {\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a new KMS Resource Object (KRO) and Content Key (CK) which is used for encryption.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async createNewEncryptionKeyUrl(): Promise<string> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createNewEncryptionKeyUrl.name,\n };\n\n let unboundedKeyUri = '';\n\n log.info('Requesting kms for a new KRO and key', loggerContext);\n const unboundedKeys = await this.webex.internal.encryption.kms.createUnboundKeys({count: 1});\n\n unboundedKeyUri = unboundedKeys[0].uri;\n this.webex.internal.encryption.kms.createResource({keyUris: [unboundedKeyUri]});\n\n return unboundedKeyUri;\n }\n\n /**\n * Fetches the encryptionKeyUrl from one of the groups. Creates a new key and default group if there is no data.\n *\n * @returns EncryptionKeyUrl as a Promise.\n */\n private async fetchEncryptionKeyUrl(): Promise<string> {\n if (this.encryptionKeyUrl) {\n return this.encryptionKeyUrl;\n }\n // istanbul ignore else\n if (this.groups === undefined) {\n this.getContacts();\n }\n // istanbul ignore else\n if (this.groups && this.groups.length) {\n /** Use the encryptionKeyUrl of any one of the groups */\n return this.groups[0].encryptionKeyUrl;\n }\n\n this.encryptionKeyUrl = await this.createNewEncryptionKeyUrl();\n log.info(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: this.fetchEncryptionKeyUrl.name,\n });\n const response: ContactResponse = await this.createContactGroup(\n DEFAULT_GROUP_NAME,\n this.encryptionKeyUrl\n );\n\n if (response.data.group?.groupId) {\n this.defaultGroupId = response.data.group?.groupId;\n }\n\n return this.encryptionKeyUrl;\n }\n\n /**\n * Fetches a default group.\n *\n * @returns GroupId of default group.\n */\n private async fetchDefaultGroup(): Promise<string> {\n if (this.defaultGroupId) {\n return this.defaultGroupId;\n }\n\n /* Check the groups list and determine the defaultGroupId */\n if (this.groups && this.groups.length) {\n for (let i = 0; i < this.groups.length; i += 1) {\n if (this.groups[i].displayName === DEFAULT_GROUP_NAME) {\n this.defaultGroupId = this.groups[i].groupId;\n\n return this.defaultGroupId;\n }\n }\n }\n\n log.info('No default group found.', {\n file: CONTACTS_FILE,\n method: this.fetchDefaultGroup.name,\n });\n\n const response: ContactResponse = await this.createContactGroup(DEFAULT_GROUP_NAME);\n\n const {group} = response.data;\n\n if (group) {\n return group.groupId;\n }\n\n return '';\n }\n\n /**\n * Creates a personal contact group.\n * Also creates a KRO, if there aren't any groups.\n * @param displayName - Name of the group to create.\n * @param encryptionKeyUrl - EncryptionKeyUrl to encrypt the displayName.\n * @param groupType - Type of the group to create.\n */\n public async createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContactGroup.name,\n };\n\n log.info(`Creating contact group ${displayName}`, loggerContext);\n\n const encryptionKeyUrlFinal = encryptionKeyUrl || (await this.fetchEncryptionKeyUrl());\n\n if (this.groups === undefined) {\n await this.getContacts();\n }\n\n if (this.groups && this.groups.length) {\n const isExistingGroup = this.groups.find((group) => {\n return group.displayName === displayName;\n });\n\n if (isExistingGroup) {\n log.warn(`Group name ${displayName} already exists.`, loggerContext);\n\n return {\n statusCode: 400 as number,\n data: {error: 'Group displayName already exists'},\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const encryptedDisplayName = await this.webex.internal.encryption.encryptText(\n encryptionKeyUrlFinal,\n displayName\n );\n\n const groupInfo = {\n schemas: CONTACTS_SCHEMA,\n displayName: encryptedDisplayName,\n groupType: groupType || GroupType.NORMAL,\n encryptionKeyUrl: encryptionKeyUrlFinal,\n };\n\n try {\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`,\n method: HTTP_METHODS.POST,\n body: groupInfo,\n });\n\n const group = response.body as ContactGroup;\n\n group.displayName = displayName;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n group,\n },\n message: SUCCESS_MESSAGE,\n };\n\n this.groups?.push(group);\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Unable to create contact group.', loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Deletes a contact group.\n * @param groupId - GroupId of the group to delete.\n */\n public async deleteContactGroup(groupId: string) {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContactGroup.name,\n };\n\n try {\n log.info(`Deleting contact group: ${groupId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}/${groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const groupToDelete = this.groups?.findIndex((group) => group.groupId === groupId);\n\n if (groupToDelete !== undefined && groupToDelete !== -1) {\n this.groups?.splice(groupToDelete, 1);\n }\n\n if (!this.groups?.length) {\n this.defaultGroupId = '';\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact group ${groupId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Creates a custom contact.\n * @param contactInfo - Contact object to create.\n */\n public async createContact(contactInfo: Contact): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n };\n\n log.info(`Request to create contact: contactType: ${contactInfo.contactType}`, loggerContext);\n\n try {\n const contact = {...contactInfo};\n\n if (!contact.encryptionKeyUrl) {\n contact.encryptionKeyUrl = await this.fetchEncryptionKeyUrl();\n }\n\n if (!contact.groups || contact.groups.length === 0) {\n /** Fetch the groupId for the default group if not create */\n const defaultGroupId = await this.fetchDefaultGroup();\n\n contact.groups = [defaultGroupId];\n }\n\n contact.schemas = CONTACTS_SCHEMA;\n let requestBody = {};\n\n switch (contact.contactType) {\n case ContactType.CUSTOM: {\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n case ContactType.CLOUD: {\n if (!contact.contactId) {\n return {\n statusCode: 400 as number,\n data: {\n error: 'contactId is required for contactType:CLOUD.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n const encryptedContact = await this.encryptContact(contact);\n\n requestBody = encryptedContact;\n break;\n }\n default: {\n return {\n statusCode: 400 as number,\n data: {\n error: 'Unknown contactType received.',\n },\n message: FAILURE_MESSAGE,\n } as ContactResponse;\n }\n }\n\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`,\n method: HTTP_METHODS.POST,\n body: requestBody,\n });\n\n const newContact = response.body as Contact;\n\n contact.contactId = newContact.contactId;\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {\n contact,\n },\n message: SUCCESS_MESSAGE,\n };\n\n if (contact.contactType === ContactType.CLOUD) {\n const decryptedContacts = await this.fetchContactFromDSS(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo\n );\n\n if (decryptedContacts.length && decryptedContacts[0]) {\n this.contacts?.push(decryptedContacts[0]);\n }\n } else {\n this.contacts?.push(contact);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn('Failed to create contact.', {\n file: CONTACTS_FILE,\n method: this.createContact.name,\n });\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * Delete a contact.\n * @param contactId - ContactId of the contact to delete.\n */\n public async deleteContact(contactId: string): Promise<ContactResponse> {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: this.deleteContact.name,\n };\n\n try {\n log.info(`Deleting contact : ${contactId}`, loggerContext);\n const response = <WebexRequestPayload>await this.webex.request({\n // eslint-disable-next-line no-underscore-dangle\n uri: `${this.webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}/${contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n const contactResponse: ContactResponse = {\n statusCode: Number(response[STATUS_CODE]),\n data: {},\n message: SUCCESS_MESSAGE,\n };\n\n const contactToDelete = this.contacts?.findIndex(\n (contact) => contact.contactId === contactId\n );\n\n if (contactToDelete !== undefined && contactToDelete !== -1) {\n this.contacts?.splice(contactToDelete, 1);\n }\n\n return contactResponse;\n } catch (err: unknown) {\n log.warn(`Unable to delete contact ${contactId}`, loggerContext);\n const errorInfo = err as WebexRequestPayload;\n const errorStatus = serviceErrorCodeHandler(errorInfo, loggerContext);\n\n return errorStatus;\n }\n }\n\n /**\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * Creates a ContactsClient instance\n *\n * @param {WebexSDK} webex - `Webex SDK`instance.\n * @param {LoggerInterface} logger - An instance implementing LoggerInterface used to set the log level for the module.\n */\nexport const createContactsClient = (webex: WebexSDK, logger: LoggerInterface): IContacts =>\n new ContactsClient(webex, logger);\n"],"mappings":"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"}
@@ -12,6 +12,9 @@ exports.ContactType = ContactType;
12
12
  ContactType["CLOUD"] = "CLOUD";
13
13
  })(ContactType || (exports.ContactType = ContactType = {}));
14
14
  var GroupType;
15
+ /**
16
+ * `ContactGroup` object is used to represent a contact group.
17
+ */
15
18
  exports.GroupType = GroupType;
16
19
  (function (GroupType) {
17
20
  GroupType["NORMAL"] = "NORMAL";
@@ -1 +1 @@
1
- {"version":3,"names":["ContactType","exports","GroupType"],"sources":["types.ts"],"sourcesContent":["import {ContactDetail} from '../common/types';\n\nexport enum ContactType {\n CUSTOM = 'CUSTOM',\n CLOUD = 'CLOUD',\n}\n\nexport type AddressType = {\n city?: string;\n country?: string;\n state?: string;\n street?: string;\n zipCode?: string;\n};\n\nexport type Contact = {\n addressInfo?: AddressType;\n avatarURL?: string;\n avatarUrlDomain?: string;\n companyName?: string;\n contactId?: string;\n contactType: ContactType;\n department?: string;\n displayName?: string;\n emails?: ContactDetail[];\n encryptionKeyUrl: string;\n firstName?: string;\n groups: string[];\n kmsResourceObjectUrl?: string;\n lastName?: string;\n manager?: string;\n ownerId?: string;\n phoneNumbers?: ContactDetail[];\n primaryContactMethod?: string;\n schemas?: string;\n sipAddresses?: ContactDetail[];\n title?: string;\n};\n\nexport enum GroupType {\n NORMAL = 'NORMAL',\n EXTERNAL = 'EXTERNAL',\n}\n\nexport type ContactGroup = {\n displayName: string;\n encryptionKeyUrl: string;\n groupId: string;\n groupType: GroupType;\n members?: string[];\n ownerId?: string;\n};\n\nexport type ContactList = {\n contacts: Contact[];\n groups: ContactGroup[];\n};\n\nexport type ContactResponse = {\n statusCode: number;\n data: {\n contacts?: Contact[];\n groups?: ContactGroup[];\n contact?: Contact;\n group?: ContactGroup;\n error?: string;\n };\n message: string | null;\n};\n\n/**\n * Interface for Contacts Module.\n * This encompasses a set of APIs that enable the fetching, creation, and updating of contacts and groups.\n * These APIs return promises that resolve to a `ContactResponse` object, which contains a status code, data, and message.\n * The data field within this response object holds the contacts and groups object.\n *\n * Example - ContactResponse\n *\n * ```json\n * {\n * statusCode: 200,\n * data: {\n * contacts: Contact[],\n * groups: ContactGroup[],\n * },\n * message: null\n * }\n * ````\n */\nexport interface IContacts {\n /**\n * This API is used to fetch the list of contacts and groups for a user.\n *\n * Example\n * ```javascript\n * const contactsResponse = await contactClient.getContacts();\n * ```\n *\n * The `ContactsResponse` object contains a comprehensive list of both contacts and groups for the user.\n * Each `Contact` object within this list is defined by the properties detailed in the {@link Contact}.\n * Each `ContactGroup` adheres to the properties specified in the {@link ContactGroup}.\n *\n */\n getContacts(): Promise<ContactResponse>;\n\n /**\n * This API is used to create a contact group with the given display name.\n *\n * Example\n * ```javascript\n * const contactGroup = await contactClient.createContactGroup(displayName, encryptionKeyUrl, groupType);\n * ```\n *\n * The `ContactGroup` object for the given display name will be created and returned as a response with the properties of {@link ContactGroup}.\n */\n createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse>;\n\n /**\n * This API is used to delete a contact group whose groupId is received.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContactGroup(groupId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContactGroup(groupId: string): Promise<ContactResponse>;\n\n /**\n * This API is responsible for creating a new contact.\n *\n * Example\n * ```javascript\n * const contact = await contactClient.createContact(contactInfo);\n * ```\n */\n createContact(contactInfo: Contact): Promise<ContactResponse>;\n\n /**\n * This API is responsible for deleting an existing contact for the given contactId.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContact(contactId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContact(contactId: string): Promise<ContactResponse>;\n}\n\nexport type ContactIdContactInfo = {\n [Key: string]: Contact;\n};\n"],"mappings":";;;;;;;IAEYA,WAAW;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAAA,WAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,KAAAC,OAAA,CAAAD,WAAA,GAAXA,WAAW;AAAA,IAqCXE,SAAS;AAAAD,OAAA,CAAAC,SAAA,GAAAA,SAAA;AAAA,WAATA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,KAAAD,OAAA,CAAAC,SAAA,GAATA,SAAS"}
1
+ {"version":3,"names":["ContactType","exports","GroupType"],"sources":["types.ts"],"sourcesContent":["import {ISDKConnector} from '../SDKConnector/types';\nimport {ContactDetail} from '../common/types';\n\nexport enum ContactType {\n CUSTOM = 'CUSTOM',\n CLOUD = 'CLOUD',\n}\n\nexport type AddressType = {\n city?: string;\n country?: string;\n state?: string;\n street?: string;\n zipCode?: string;\n};\n\n/**\n * `Contact` object is used to represent a contact.\n */\nexport type Contact = {\n /**\n * This represents the complete address of the contact.\n */\n addressInfo?: AddressType;\n /**\n * This represents the URL of the avatar of the contact.\n */\n avatarURL?: string;\n /**\n * This represents the domain of the avatar of the contact.\n */\n avatarUrlDomain?: string;\n /**\n * This represents the company name of the contact.\n */\n companyName?: string;\n /**\n * Unique identifier of the contact.\n */\n contactId?: string;\n /**\n * Indicates the type of the contact, can be `CLOUD` or `CUSTOM`.\n */\n contactType: ContactType;\n /**\n * Department of the contact in the company if it's a corporate contact.\n */\n department?: string;\n /**\n * This represents the display name of the contact.\n */\n displayName?: string;\n /**\n * This represents the array of different email addresses of the contact.\n */\n emails?: ContactDetail[];\n /**\n * This is encrypted key url of the contact used for encryption.\n */\n encryptionKeyUrl: string;\n /**\n * This represents the first name of the contact.\n */\n firstName?: string;\n /**\n * Array of different groups and it's details available for the user\n */\n groups: string[];\n /**\n * The kms resource object url used to generate the encryption key.\n */\n kmsResourceObjectUrl?: string;\n /**\n * This represents the last name of the contact.\n */\n lastName?: string;\n /**\n * This represents the manager of the contact.\n */\n manager?: string;\n /**\n * Userd ID of the user who has the contact.\n */\n ownerId?: string;\n /**\n * This represents the array of different phone numbers of the contact.\n */\n phoneNumbers?: ContactDetail[];\n /**\n * Primary contact method as set by the contact.\n */\n primaryContactMethod?: string;\n /**\n * This represents the schema of the contact.\n */\n schemas?: string;\n /**\n * This represents the array of different sip addresses of the contact.\n */\n sipAddresses?: ContactDetail[];\n /**\n * This represents the job title of the contact.\n */\n title?: string;\n};\n\nexport enum GroupType {\n NORMAL = 'NORMAL',\n EXTERNAL = 'EXTERNAL',\n}\n\n/**\n * `ContactGroup` object is used to represent a contact group.\n */\nexport type ContactGroup = {\n /**\n * Name of the contact group.\n */\n displayName: string;\n /**\n * Encrypted key url used for encryption.\n */\n encryptionKeyUrl: string;\n /**\n * Unique identifier of the contact group.\n */\n groupId: string;\n /**\n * Type of the contact group, can be `NORMAL` or `EXTERNAL`.\n */\n groupType: GroupType;\n /**\n * String array containing details of the contacts in each group.\n */\n members?: string[];\n /**\n * User ID of the user who owns the contact group.\n */\n ownerId?: string;\n};\n\nexport type ContactList = {\n contacts: Contact[];\n groups: ContactGroup[];\n};\n\nexport type ContactResponse = {\n statusCode: number;\n data: {\n contacts?: Contact[];\n groups?: ContactGroup[];\n contact?: Contact;\n group?: ContactGroup;\n error?: string;\n };\n message: string | null;\n};\n\n/**\n * Interface for Contacts Module.\n * This encompasses a set of APIs that enable the fetching, creation, and updating of contacts and groups.\n * These APIs return promises that resolve to a `ContactResponse` object, which contains a status code, data, and message.\n * The data field within this response object holds the contacts and groups object.\n *\n * Example - ContactResponse\n *\n * ```json\n * {\n * statusCode: 200,\n * data: {\n * contacts: Contact[],\n * groups: ContactGroup[],\n * },\n * message: null\n * }\n * ````\n */\nexport interface IContacts {\n getSDKConnector: () => ISDKConnector;\n /**\n * This API is used to fetch the list of contacts and groups for a user.\n *\n * Example\n * ```javascript\n * const contactsResponse = await contactClient.getContacts();\n * ```\n *\n * The `ContactsResponse` object contains a comprehensive list of both contacts and groups for the user.\n * Each `Contact` object within this list is defined by the properties detailed in the {@link Contact}.\n * Each `ContactGroup` adheres to the properties specified in the {@link ContactGroup}.\n *\n */\n getContacts(): Promise<ContactResponse>;\n\n /**\n * This API is used to create a contact group with the given display name.\n *\n * Example\n * ```javascript\n * const contactGroup = await contactClient.createContactGroup(displayName, encryptionKeyUrl, groupType);\n * ```\n *\n * The `ContactGroup` object for the given display name will be created and returned as a response with the properties of {@link ContactGroup}.\n */\n createContactGroup(\n displayName: string,\n encryptionKeyUrl?: string,\n groupType?: GroupType\n ): Promise<ContactResponse>;\n\n /**\n * This API is used to delete a contact group whose groupId is received.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContactGroup(groupId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContactGroup(groupId: string): Promise<ContactResponse>;\n\n /**\n * This API is responsible for creating a new contact.\n *\n * Example\n * ```javascript\n * const contact = await contactClient.createContact(contactInfo);\n * ```\n */\n createContact(contactInfo: Contact): Promise<ContactResponse>;\n\n /**\n * This API is responsible for deleting an existing contact for the given contactId.\n *\n * Example\n * ```javascript\n * const response = await contactClient.deleteContact(contactId);\n * ```\n *\n * The received response includes a status code and a message that reflect the success or failure of the API call\n */\n deleteContact(contactId: string): Promise<ContactResponse>;\n}\n\nexport type ContactIdContactInfo = {\n [Key: string]: Contact;\n};\n"],"mappings":";;;;;;;IAGYA,WAAW;AAAAC,OAAA,CAAAD,WAAA,GAAAA,WAAA;AAAA,WAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;AAAA,GAAXA,WAAW,KAAAC,OAAA,CAAAD,WAAA,GAAXA,WAAW;AAAA,IAuGXE,SAAS;AAKrB;AACA;AACA;AAFAD,OAAA,CAAAC,SAAA,GAAAA,SAAA;AAAA,WALYA,SAAS;EAATA,SAAS;EAATA,SAAS;AAAA,GAATA,SAAS,KAAAD,OAAA,CAAAC,SAAA,GAATA,SAAS"}
@@ -30,14 +30,20 @@ var _constants = require("./constants");
30
30
  function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2.default)(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2.default)(this).constructor; result = _Reflect$construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2.default)(this, result); }; }
31
31
  function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !_Reflect$construct) return false; if (_Reflect$construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(_Reflect$construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
32
32
  /**
33
+ * The `Voicemail` module is designed to simplify voicemail-related operations by offering a set of APIs.
33
34
  *
35
+ * The following code snippet demonstrates how to create an instance of `Voicemail` using a `webex` instance and a logger:
36
+ *
37
+ * Example:
38
+ * ```javascript
39
+ * const voicemailInstance = createVoicemailClient(webex, logger);
40
+ * ```
34
41
  */
35
42
  var Voicemail = /*#__PURE__*/function (_Eventing) {
36
43
  (0, _inherits2.default)(Voicemail, _Eventing);
37
44
  var _super = _createSuper(Voicemail);
38
45
  /**
39
- * @param webex -.
40
- * @param logger -.
46
+ * @ignore
41
47
  */
42
48
  function Voicemail(webex, public logger) {
43
49
  var _this;
@@ -63,7 +69,6 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
63
69
  /**
64
70
  * Voicemail connector initialization.
65
71
  *
66
- * @returns Response.
67
72
  */
68
73
  (0, _createClass2.default)(Voicemail, [{
69
74
  key: "init",
@@ -119,13 +124,12 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
119
124
  }
120
125
 
121
126
  /**
122
- * Call voicemail class to fetch the voicemail lists.
127
+ * Retrieves a list of voicemails with optional pagination and sorting options.
123
128
  *
124
- * @param sort - Sort voicemail list (ASC | DESC). TODO: Once we start implementing sorting.
125
129
  * @param offset - Number of records to skip.
126
- * @param offsetLimit - Number of voicemail list to fetch from the offset.
127
- * @param refresh - Refresh the list of voicemails from backend.
128
- * @returns Promise.
130
+ * @param offsetLimit - The limit on the number of voicemails to retrieve from the offset.
131
+ * @param sort - Sort voicemail list (ASC | DESC).
132
+ * @param refresh - Set to `true` to force a refresh of voicemail data from backend (optional).
129
133
  */
130
134
  }, {
131
135
  key: "getVoicemailList",
@@ -153,10 +157,9 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
153
157
  return getVoicemailList;
154
158
  }()
155
159
  /**
156
- * Fetch the voicemail contents for the messageId.
160
+ * Retrieves the content of a voicemail message based on its messageId.
157
161
  *
158
- * @param messageId - String result from the voicemail list.
159
- * @returns Promise.
162
+ * @param messageId - The identifier of the voicemail message.
160
163
  */
161
164
  }, {
162
165
  key: "getVoicemailContent",
@@ -184,9 +187,8 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
184
187
  return getVoicemailContent;
185
188
  }()
186
189
  /**
187
- * Fetches a quantitative summary of voicemails for a user.
190
+ * Retrieves a quantitative summary of voicemails for a user.
188
191
  *
189
- * @returns - A Promise that resolves with the data containing null or counters for newMessages, oldMessage, newUrgentMessages, oldUrgentMessages.
190
192
  */
191
193
  }, {
192
194
  key: "getVoicemailSummary",
@@ -220,7 +222,6 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
220
222
  * Fetch voicemail read message status for the messageId.
221
223
  *
222
224
  * @param messageId -string result from the voicemail list.
223
- * @returns Promise.
224
225
  */
225
226
  }, {
226
227
  key: "voicemailMarkAsRead",
@@ -251,7 +252,6 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
251
252
  * Fetch voicemail unread status for the messageId.
252
253
  *
253
254
  * @param messageId -string result from the voicemail list.
254
- * @returns Promise.
255
255
  */
256
256
  }, {
257
257
  key: "voicemailMarkAsUnread",
@@ -282,7 +282,6 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
282
282
  * Fetch voicemail delete status for the messageId.
283
283
  *
284
284
  * @param messageId -string result from the voicemail list.
285
- * @returns Promise.
286
285
  */
287
286
  }, {
288
287
  key: "deleteVoicemail",
@@ -313,7 +312,6 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
313
312
  * Fetch the voicemail transcripts for the messageId.
314
313
  *
315
314
  * @param messageId - MessageId for which we need the transcript.
316
- * @returns Promise.
317
315
  */
318
316
  }, {
319
317
  key: "getVMTranscript",
@@ -355,8 +353,7 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
355
353
 
356
354
  /**
357
355
  * SDK connector function.
358
- *
359
- * @returns SdkConnector.
356
+ * @ignore
360
357
  */
361
358
  }, {
362
359
  key: "getSDKConnector",
@@ -367,8 +364,8 @@ var Voicemail = /*#__PURE__*/function (_Eventing) {
367
364
  return Voicemail;
368
365
  }(_impl.Eventing);
369
366
  /**
370
- * @param webex -.
371
- * @param logger -.
367
+ * @param webex - webex instance
368
+ * @param logger - logger instance
372
369
  */
373
370
  exports.Voicemail = Voicemail;
374
371
  var createVoicemailClient = function createVoicemailClient(webex, logger) {
@@ -1 +1 @@
1
- {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_WxCallBackendConnector","_BroadworksBackendConnector","_impl","_UcmBackendConnector","_types2","_Metrics","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Voicemail","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","sdkConnector","SDKConnector","getWebex","setWebex","metricManager","getMetricManager","undefined","callingBackend","getCallingBackEnd","initializeBackendConnector","log","setLogger","level","VOICEMAIL_FILE","_createClass2","key","value","init","response","backendConnector","CALLING_BACKEND","WXC","WxCallBackendConnector","BWRKS","BroadworksBackendConnector","UCM","UcmBackendConnector","Error","submitMetric","metricAction","messageId","statusCode","errorMessage","data","error","submitVoicemailMetric","METRIC_EVENT","VOICEMAIL","METRIC_TYPE","BEHAVIORAL","VOICEMAIL_ERROR","_getVoicemailList","_asyncToGenerator2","_regenerator","mark","_callee","offset","offsetLimit","sort","refresh","wrap","_callee$","_context","prev","next","getVoicemailList","sent","VOICEMAIL_ACTION","GET_VOICEMAILS","abrupt","stop","_x","_x2","_x3","_x4","_getVoicemailContent","_callee2","_callee2$","_context2","getVoicemailContent","GET_VOICEMAIL_CONTENT","_x5","_getVoicemailSummary","_callee3","_callee3$","_context3","getVoicemailSummary","GET_VOICEMAIL_SUMMARY","_voicemailMarkAsRead","_callee4","_callee4$","_context4","voicemailMarkAsRead","MARK_READ","_x6","_voicemailMarkAsUnread","_callee5","_callee5$","_context5","voicemailMarkAsUnread","MARK_UNREAD","_x7","_deleteVoicemail","_callee6","_callee6$","_context6","deleteVoicemail","DELETE","_x8","_getVMTranscript","_callee7","_callee7$","_context7","getVMTranscript","TRANSCRIPT","_x9","resolveContact","callingPartyInfo","getSDKConnector","Eventing","exports","createVoicemailClient"],"sources":["Voicemail.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {IVoicemail, VoicemailResponseEvent, LoggerInterface, CallingPartyInfo} from './types';\nimport {CALLING_BACKEND, DisplayInformation, SORT} from '../common/types';\nimport log from '../Logger';\nimport {getCallingBackEnd} from '../common/Utils';\nimport {WxCallBackendConnector} from './WxCallBackendConnector';\nimport {BroadworksBackendConnector} from './BroadworksBackendConnector';\nimport {VoicemailEventTypes} from '../Events/types';\nimport {Eventing} from '../Events/impl';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, VOICEMAIL_ACTION} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport {VOICEMAIL_FILE} from './constants';\n\n/**\n *\n */\nexport class Voicemail extends Eventing<VoicemailEventTypes> implements IVoicemail {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private callingBackend: CALLING_BACKEND;\n\n private backendConnector!: IVoicemail;\n\n private metricManager: IMetricManager;\n\n /**\n * @param webex -.\n * @param logger -.\n */\n constructor(webex: WebexSDK, public logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.metricManager = getMetricManager(this.webex, undefined);\n this.callingBackend = getCallingBackEnd(this.webex);\n this.initializeBackendConnector();\n log.setLogger(logger.level, VOICEMAIL_FILE);\n }\n\n /**\n * Voicemail connector initialization.\n *\n * @returns Response.\n */\n public init() {\n const response = this.backendConnector.init();\n\n return response;\n }\n\n /**\n * Setup and initialize the voicemail backend connector class object.\n */\n private initializeBackendConnector() {\n switch (this.callingBackend) {\n case CALLING_BACKEND.WXC: {\n this.backendConnector = new WxCallBackendConnector(this.webex, this.logger);\n break;\n }\n\n case CALLING_BACKEND.BWRKS: {\n this.backendConnector = new BroadworksBackendConnector(this.webex, this.logger);\n break;\n }\n\n case CALLING_BACKEND.UCM: {\n this.backendConnector = new UcmBackendConnector(this.webex, this.logger);\n break;\n }\n\n default: {\n throw new Error('Calling backend is not identified, exiting....');\n }\n }\n }\n\n /**\n * @param response - VoicemailResponseEvent to be used in submitting metric.\n * @param metricAction - Action for the metric being submitted.\n * @param messageId - Message identifier of the voicemail message.\n */\n private submitMetric(response: VoicemailResponseEvent, metricAction: string, messageId?: string) {\n const {\n statusCode,\n data: {error: errorMessage},\n } = response;\n\n if (statusCode >= 200 && statusCode < 300) {\n this.metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n metricAction,\n METRIC_TYPE.BEHAVIORAL,\n messageId\n );\n } else {\n this.metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n metricAction,\n METRIC_TYPE.BEHAVIORAL,\n messageId,\n errorMessage,\n statusCode\n );\n }\n }\n\n /**\n * Call voicemail class to fetch the voicemail lists.\n *\n * @param sort - Sort voicemail list (ASC | DESC). TODO: Once we start implementing sorting.\n * @param offset - Number of records to skip.\n * @param offsetLimit - Number of voicemail list to fetch from the offset.\n * @param refresh - Refresh the list of voicemails from backend.\n * @returns Promise.\n */\n public async getVoicemailList(\n offset: number,\n offsetLimit: number,\n sort: SORT,\n refresh?: boolean\n ): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.getVoicemailList(\n offset,\n offsetLimit,\n sort,\n refresh\n );\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAILS);\n\n return response;\n }\n\n /**\n * Fetch the voicemail contents for the messageId.\n *\n * @param messageId - String result from the voicemail list.\n * @returns Promise.\n */\n public async getVoicemailContent(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.getVoicemailContent(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT, messageId);\n\n return response;\n }\n\n /**\n * Fetches a quantitative summary of voicemails for a user.\n *\n * @returns - A Promise that resolves with the data containing null or counters for newMessages, oldMessage, newUrgentMessages, oldUrgentMessages.\n */\n public async getVoicemailSummary(): Promise<VoicemailResponseEvent | null> {\n const response = await this.backendConnector.getVoicemailSummary();\n\n /* istanbul ignore else */\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY);\n }\n\n return response;\n }\n\n /**\n * Fetch voicemail read message status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n * @returns Promise.\n */\n public async voicemailMarkAsRead(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.voicemailMarkAsRead(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_READ, messageId);\n\n return response;\n }\n\n /**\n * Fetch voicemail unread status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n * @returns Promise.\n */\n public async voicemailMarkAsUnread(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.voicemailMarkAsUnread(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_UNREAD, messageId);\n\n return response;\n }\n\n /**\n * Fetch voicemail delete status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n * @returns Promise.\n */\n public async deleteVoicemail(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.deleteVoicemail(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.DELETE, messageId);\n\n return response;\n }\n\n /**\n * Fetch the voicemail transcripts for the messageId.\n *\n * @param messageId - MessageId for which we need the transcript.\n * @returns Promise.\n */\n public async getVMTranscript(messageId: string): Promise<VoicemailResponseEvent | null> {\n const response = await this.backendConnector.getVMTranscript(messageId);\n\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.TRANSCRIPT, messageId);\n }\n\n return response;\n }\n\n /**\n * Resolve the Contact from userId or display name.\n *\n * @param callingPartyInfo - Calling Party Info.\n */\n public resolveContact(callingPartyInfo: CallingPartyInfo): Promise<DisplayInformation | null> {\n return this.backendConnector.resolveContact(callingPartyInfo);\n }\n\n /**\n * SDK connector function.\n *\n * @returns SdkConnector.\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * @param webex -.\n * @param logger -.\n */\nexport const createVoicemailClient = (webex: WebexSDK, logger: LoggerInterface): IVoicemail =>\n new Voicemail(webex, logger);\n"],"mappings":"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"}
1
+ {"version":3,"names":["_SDKConnector","_interopRequireDefault","require","_types","_Logger","_Utils","_WxCallBackendConnector","_BroadworksBackendConnector","_impl","_UcmBackendConnector","_types2","_Metrics","_constants","_createSuper","Derived","hasNativeReflectConstruct","_isNativeReflectConstruct","_createSuperInternal","Super","_getPrototypeOf2","default","result","NewTarget","constructor","_Reflect$construct","arguments","apply","_possibleConstructorReturn2","Reflect","sham","Proxy","Boolean","prototype","valueOf","call","e","Voicemail","_Eventing","_inherits2","_super","webex","logger","_this","_classCallCheck2","_defineProperty2","_assertThisInitialized2","sdkConnector","SDKConnector","getWebex","setWebex","metricManager","getMetricManager","undefined","callingBackend","getCallingBackEnd","initializeBackendConnector","log","setLogger","level","VOICEMAIL_FILE","_createClass2","key","value","init","response","backendConnector","CALLING_BACKEND","WXC","WxCallBackendConnector","BWRKS","BroadworksBackendConnector","UCM","UcmBackendConnector","Error","submitMetric","metricAction","messageId","statusCode","errorMessage","data","error","submitVoicemailMetric","METRIC_EVENT","VOICEMAIL","METRIC_TYPE","BEHAVIORAL","VOICEMAIL_ERROR","_getVoicemailList","_asyncToGenerator2","_regenerator","mark","_callee","offset","offsetLimit","sort","refresh","wrap","_callee$","_context","prev","next","getVoicemailList","sent","VOICEMAIL_ACTION","GET_VOICEMAILS","abrupt","stop","_x","_x2","_x3","_x4","_getVoicemailContent","_callee2","_callee2$","_context2","getVoicemailContent","GET_VOICEMAIL_CONTENT","_x5","_getVoicemailSummary","_callee3","_callee3$","_context3","getVoicemailSummary","GET_VOICEMAIL_SUMMARY","_voicemailMarkAsRead","_callee4","_callee4$","_context4","voicemailMarkAsRead","MARK_READ","_x6","_voicemailMarkAsUnread","_callee5","_callee5$","_context5","voicemailMarkAsUnread","MARK_UNREAD","_x7","_deleteVoicemail","_callee6","_callee6$","_context6","deleteVoicemail","DELETE","_x8","_getVMTranscript","_callee7","_callee7$","_context7","getVMTranscript","TRANSCRIPT","_x9","resolveContact","callingPartyInfo","getSDKConnector","Eventing","exports","createVoicemailClient"],"sources":["Voicemail.ts"],"sourcesContent":["/* eslint-disable dot-notation */\n/* eslint-disable no-underscore-dangle */\n/* eslint-disable valid-jsdoc */\nimport SDKConnector from '../SDKConnector';\nimport {ISDKConnector, WebexSDK} from '../SDKConnector/types';\nimport {IVoicemail, VoicemailResponseEvent, LoggerInterface, CallingPartyInfo} from './types';\nimport {CALLING_BACKEND, DisplayInformation, SORT} from '../common/types';\nimport log from '../Logger';\nimport {getCallingBackEnd} from '../common/Utils';\nimport {WxCallBackendConnector} from './WxCallBackendConnector';\nimport {BroadworksBackendConnector} from './BroadworksBackendConnector';\nimport {VoicemailEventTypes} from '../Events/types';\nimport {Eventing} from '../Events/impl';\nimport {UcmBackendConnector} from './UcmBackendConnector';\nimport {IMetricManager, METRIC_EVENT, METRIC_TYPE, VOICEMAIL_ACTION} from '../Metrics/types';\nimport {getMetricManager} from '../Metrics';\nimport {VOICEMAIL_FILE} from './constants';\n\n/**\n * The `Voicemail` module is designed to simplify voicemail-related operations by offering a set of APIs.\n *\n * The following code snippet demonstrates how to create an instance of `Voicemail` using a `webex` instance and a logger:\n *\n * Example:\n * ```javascript\n * const voicemailInstance = createVoicemailClient(webex, logger);\n * ```\n */\nexport class Voicemail extends Eventing<VoicemailEventTypes> implements IVoicemail {\n private sdkConnector: ISDKConnector;\n\n private webex: WebexSDK;\n\n private callingBackend: CALLING_BACKEND;\n\n private backendConnector!: IVoicemail;\n\n private metricManager: IMetricManager;\n\n /**\n * @ignore\n */\n constructor(webex: WebexSDK, public logger: LoggerInterface) {\n super();\n this.sdkConnector = SDKConnector;\n if (!this.sdkConnector.getWebex()) {\n SDKConnector.setWebex(webex);\n }\n this.webex = this.sdkConnector.getWebex();\n this.metricManager = getMetricManager(this.webex, undefined);\n this.callingBackend = getCallingBackEnd(this.webex);\n this.initializeBackendConnector();\n log.setLogger(logger.level, VOICEMAIL_FILE);\n }\n\n /**\n * Voicemail connector initialization.\n *\n */\n public init() {\n const response = this.backendConnector.init();\n\n return response;\n }\n\n /**\n * Setup and initialize the voicemail backend connector class object.\n */\n private initializeBackendConnector() {\n switch (this.callingBackend) {\n case CALLING_BACKEND.WXC: {\n this.backendConnector = new WxCallBackendConnector(this.webex, this.logger);\n break;\n }\n\n case CALLING_BACKEND.BWRKS: {\n this.backendConnector = new BroadworksBackendConnector(this.webex, this.logger);\n break;\n }\n\n case CALLING_BACKEND.UCM: {\n this.backendConnector = new UcmBackendConnector(this.webex, this.logger);\n break;\n }\n\n default: {\n throw new Error('Calling backend is not identified, exiting....');\n }\n }\n }\n\n /**\n * @param response - VoicemailResponseEvent to be used in submitting metric.\n * @param metricAction - Action for the metric being submitted.\n * @param messageId - Message identifier of the voicemail message.\n */\n private submitMetric(response: VoicemailResponseEvent, metricAction: string, messageId?: string) {\n const {\n statusCode,\n data: {error: errorMessage},\n } = response;\n\n if (statusCode >= 200 && statusCode < 300) {\n this.metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL,\n metricAction,\n METRIC_TYPE.BEHAVIORAL,\n messageId\n );\n } else {\n this.metricManager.submitVoicemailMetric(\n METRIC_EVENT.VOICEMAIL_ERROR,\n metricAction,\n METRIC_TYPE.BEHAVIORAL,\n messageId,\n errorMessage,\n statusCode\n );\n }\n }\n\n /**\n * Retrieves a list of voicemails with optional pagination and sorting options.\n *\n * @param offset - Number of records to skip.\n * @param offsetLimit - The limit on the number of voicemails to retrieve from the offset.\n * @param sort - Sort voicemail list (ASC | DESC).\n * @param refresh - Set to `true` to force a refresh of voicemail data from backend (optional).\n */\n public async getVoicemailList(\n offset: number,\n offsetLimit: number,\n sort: SORT,\n refresh?: boolean\n ): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.getVoicemailList(\n offset,\n offsetLimit,\n sort,\n refresh\n );\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAILS);\n\n return response;\n }\n\n /**\n * Retrieves the content of a voicemail message based on its messageId.\n *\n * @param messageId - The identifier of the voicemail message.\n */\n public async getVoicemailContent(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.getVoicemailContent(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_CONTENT, messageId);\n\n return response;\n }\n\n /**\n * Retrieves a quantitative summary of voicemails for a user.\n *\n */\n public async getVoicemailSummary(): Promise<VoicemailResponseEvent | null> {\n const response = await this.backendConnector.getVoicemailSummary();\n\n /* istanbul ignore else */\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.GET_VOICEMAIL_SUMMARY);\n }\n\n return response;\n }\n\n /**\n * Fetch voicemail read message status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n */\n public async voicemailMarkAsRead(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.voicemailMarkAsRead(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_READ, messageId);\n\n return response;\n }\n\n /**\n * Fetch voicemail unread status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n */\n public async voicemailMarkAsUnread(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.voicemailMarkAsUnread(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.MARK_UNREAD, messageId);\n\n return response;\n }\n\n /**\n * Fetch voicemail delete status for the messageId.\n *\n * @param messageId -string result from the voicemail list.\n */\n public async deleteVoicemail(messageId: string): Promise<VoicemailResponseEvent> {\n const response = await this.backendConnector.deleteVoicemail(messageId);\n\n this.submitMetric(response, VOICEMAIL_ACTION.DELETE, messageId);\n\n return response;\n }\n\n /**\n * Fetch the voicemail transcripts for the messageId.\n *\n * @param messageId - MessageId for which we need the transcript.\n */\n public async getVMTranscript(messageId: string): Promise<VoicemailResponseEvent | null> {\n const response = await this.backendConnector.getVMTranscript(messageId);\n\n if (response !== null) {\n this.submitMetric(response, VOICEMAIL_ACTION.TRANSCRIPT, messageId);\n }\n\n return response;\n }\n\n /**\n * Resolve the Contact from userId or display name.\n *\n * @param callingPartyInfo - Calling Party Info.\n */\n public resolveContact(callingPartyInfo: CallingPartyInfo): Promise<DisplayInformation | null> {\n return this.backendConnector.resolveContact(callingPartyInfo);\n }\n\n /**\n * SDK connector function.\n * @ignore\n */\n public getSDKConnector(): ISDKConnector {\n return this.sdkConnector;\n }\n}\n\n/**\n * @param webex - webex instance\n * @param logger - logger instance\n */\nexport const createVoicemailClient = (webex: WebexSDK, logger: LoggerInterface): IVoicemail =>\n new Voicemail(webex, logger);\n"],"mappings":"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"}
@@ -66,8 +66,8 @@ var WxCallBackendConnector = /*#__PURE__*/function () {
66
66
  }
67
67
 
68
68
  /**
69
+ * @ignore
69
70
  * SDK connector function.
70
- *
71
71
  * @returns SdkConnector.
72
72
  */
73
73
  }, {