@webex/calling 3.4.0-next.7 → 3.4.0-next.9

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.
@@ -379,7 +379,21 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
379
379
  method: 'resolveCloudContacts'
380
380
  };
381
381
  var finalContactList = [];
382
+ var resolvedList = [];
382
383
  try {
384
+ inputList.Resources.forEach(function (item) {
385
+ resolvedList.push(item.id);
386
+ });
387
+ (0, _values.default)(contactsDataMap).forEach(function (item) {
388
+ var isResolved = resolvedList.some(function (listItem) {
389
+ return listItem === item.contactId;
390
+ });
391
+ if (!isResolved) {
392
+ finalContactList.push(_objectSpread(_objectSpread({}, item), {}, {
393
+ resolved: false
394
+ }));
395
+ }
396
+ });
383
397
  for (var n = 0; n < inputList.Resources.length; n += 1) {
384
398
  var _filteredContact$name, _filteredContact$name2, _filteredContact$SCIM, _filteredContact$SCIM2, _filteredContact$SCIM3;
385
399
  var filteredContact = inputList.Resources[n];
@@ -417,7 +431,8 @@ var ContactsClient = exports.ContactsClient = /*#__PURE__*/function () {
417
431
  manager: manager,
418
432
  ownerId: ownerId,
419
433
  phoneNumbers: phoneNumbers,
420
- sipAddresses: sipAddresses
434
+ sipAddresses: sipAddresses,
435
+ resolved: true
421
436
  };
422
437
  finalContactList.push(cloudContact);
423
438
  }
@@ -1 +1 @@
1
- {"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","exports","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_createClass2","key","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","resolveCloudContacts","contactsDataMap","inputList","loggerContext","file","method","finalContactList","n","Resources","_filteredContact$name","_filteredContact$name2","_filteredContact$SCIM","_filteredContact$SCIM2","_filteredContact$SCIM3","filteredContact","displayName","emails","phoneNumbers","photos","sipAddresses","SCIM_WEBEXIDENTITY_USER","firstName","name","givenName","lastName","familyName","manager","SCIM_ENTERPRISE_USER","department","avatarURL","_contactsDataMap$inpu","id","contactType","avatarUrlDomain","ownerId","cloudContact","contactId","error","warn","_getContacts","_callee11","_this5","contactList","cloudContactsMap","response","responseBody","contactIdList","query","result","resolvedContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context11","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","_ref13","_callee9","_callee9$","_context9","ContactType","CUSTOM","CLOUD","_x11","_keys","item","SCIM_ID_FILTER","join","OR","scimQuery","_ref14","_callee10","group","idx","_callee10$","_context10","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context12","createNewEncryptionKeyUrl","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context13","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","i","_callee14$","_context14","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context15","find","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context16","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","res","resolvedContact","_this$contacts","_this$contacts2","_callee17$","_context17","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context18","deleteContact","_x19","getSDKConnector","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {\n FAILURE_MESSAGE,\n SCIM_ENTERPRISE_USER,\n SCIM_WEBEXIDENTITY_USER,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail, SCIMListResponse} 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 OR,\n SCIM_ID_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 {scimQuery, 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 private resolveCloudContacts(\n contactsDataMap: ContactIdContactInfo,\n inputList: SCIMListResponse\n ): Contact[] | null {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'resolveCloudContacts',\n };\n const finalContactList: Contact[] = [];\n\n try {\n for (let n = 0; n < inputList.Resources.length; n += 1) {\n const filteredContact = inputList.Resources[n];\n const {displayName, emails, phoneNumbers, photos} = filteredContact;\n let sipAddresses;\n if (filteredContact[SCIM_WEBEXIDENTITY_USER]) {\n sipAddresses = filteredContact[SCIM_WEBEXIDENTITY_USER].sipAddresses;\n }\n const firstName = filteredContact.name?.givenName;\n const lastName = filteredContact.name?.familyName;\n const manager = filteredContact[SCIM_ENTERPRISE_USER]?.manager?.displayName;\n const department = filteredContact[SCIM_ENTERPRISE_USER]?.department;\n const avatarURL = photos?.length ? photos[0].value : '';\n\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[inputList.Resources[n].id];\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId: inputList.Resources[n].id,\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 };\n\n finalContactList.push(cloudContact);\n }\n } catch (error: any) {\n log.warn('Error occurred while parsing resolved contacts', loggerContext);\n\n return null;\n }\n\n return finalContactList;\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 cloudContactsMap: 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 contacts.map(async (contact) => {\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 cloudContactsMap[contact.contactId] = contact;\n }\n });\n\n // Resolve cloud contacts\n if (Object.keys(cloudContactsMap).length) {\n const contactIdList = Object.keys(cloudContactsMap);\n const query = contactIdList.map((item) => `${SCIM_ID_FILTER} \"${item}\"`).join(OR);\n const result = await scimQuery(query);\n const resolvedContacts = this.resolveCloudContacts(\n cloudContactsMap,\n result.body as SCIMListResponse\n );\n if (resolvedContacts) {\n resolvedContacts.map((item) => contactList.push(item));\n }\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 && newContact.contactId) {\n const query = `${SCIM_ID_FILTER} \"${newContact.contactId}\"`;\n const res = await scimQuery(query);\n const resolvedContact = this.resolveCloudContacts(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo,\n res.body as SCIMListResponse\n );\n if (resolvedContact) {\n this.contacts?.push(resolvedContact[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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"}
1
+ {"version":3,"names":["_constants","require","_types","_SDKConnector","_interopRequireDefault","_Logger","_constants2","_types2","_Utils","ownKeys","e","r","t","_Object$keys2","_Object$getOwnPropertySymbols","o","filter","_Object$getOwnPropertyDescriptor","enumerable","push","apply","_objectSpread","arguments","length","Object","forEach","_defineProperty2","default","_Object$getOwnPropertyDescriptors","_Object$defineProperties","_Object$defineProperty","ContactsClient","exports","webex","logger","_classCallCheck2","sdkConnector","SDKConnector","getWebex","setWebex","encryptionKeyUrl","groups","undefined","contacts","defaultGroupId","log","setLogger","level","CONTACTS_FILE","_createClass2","key","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","resolveCloudContacts","contactsDataMap","inputList","loggerContext","file","method","finalContactList","resolvedList","Resources","item","id","isResolved","some","listItem","contactId","resolved","n","_filteredContact$name","_filteredContact$name2","_filteredContact$SCIM","_filteredContact$SCIM2","_filteredContact$SCIM3","filteredContact","displayName","emails","phoneNumbers","photos","sipAddresses","SCIM_WEBEXIDENTITY_USER","firstName","name","givenName","lastName","familyName","manager","SCIM_ENTERPRISE_USER","department","avatarURL","_contactsDataMap$inpu","contactType","avatarUrlDomain","ownerId","cloudContact","error","warn","_getContacts","_callee11","_this5","contactList","cloudContactsMap","response","responseBody","contactIdList","query","result","resolvedContacts","contactResponse","errorInfo","errorStatus","_callee11$","_context11","request","uri","concat","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","HTTP_METHODS","GET","body","Error","_ref13","_callee9","_callee9$","_context9","ContactType","CUSTOM","CLOUD","_x11","_keys","SCIM_ID_FILTER","join","OR","scimQuery","_ref14","_callee10","group","idx","_callee10$","_context10","_x12","_x13","statusCode","Number","STATUS_CODE","data","message","SUCCESS_MESSAGE","serviceErrorCodeHandler","getContacts","_createNewEncryptionKeyUrl","_callee12","unboundedKeyUri","unboundedKeys","_callee12$","_context12","createNewEncryptionKeyUrl","info","kms","createUnboundKeys","count","createResource","keyUris","_fetchEncryptionKeyUrl","_callee13","_response$data$group","_response$data$group2","_callee13$","_context13","DEFAULT_GROUP_NAME","fetchEncryptionKeyUrl","createContactGroup","groupId","_fetchDefaultGroup","_callee14","i","_callee14$","_context14","fetchDefaultGroup","_createContactGroup","_callee15","groupType","encryptionKeyUrlFinal","isExistingGroup","encryptedDisplayName","groupInfo","_this$groups","_callee15$","_context15","find","FAILURE_MESSAGE","schemas","CONTACTS_SCHEMA","GroupType","NORMAL","GROUP_FILTER","POST","_x14","_x15","_x16","_deleteContactGroup","_callee16","_this$groups2","_this$groups4","groupToDelete","_this$groups3","_callee16$","_context16","deleteContactGroup","DELETE","findIndex","splice","_x17","_createContact","_callee17","contactInfo","requestBody","_encryptedContact","newContact","res","resolvedContact","_this$contacts","_this$contacts2","_callee17$","_context17","createContact","_x18","_deleteContact","_callee18","_this$contacts3","contactToDelete","_this$contacts4","_callee18$","_context18","deleteContact","_x19","getSDKConnector","createContactsClient"],"sources":["ContactsClient.ts"],"sourcesContent":["/* eslint-disable no-await-in-loop */\nimport {\n FAILURE_MESSAGE,\n SCIM_ENTERPRISE_USER,\n SCIM_WEBEXIDENTITY_USER,\n STATUS_CODE,\n SUCCESS_MESSAGE,\n} from '../common/constants';\nimport {HTTP_METHODS, WebexRequestPayload, ContactDetail, SCIMListResponse} 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 OR,\n SCIM_ID_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 {scimQuery, 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 private resolveCloudContacts(\n contactsDataMap: ContactIdContactInfo,\n inputList: SCIMListResponse\n ): Contact[] | null {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'resolveCloudContacts',\n };\n const finalContactList: Contact[] = [];\n const resolvedList: string[] = [];\n\n try {\n inputList.Resources.forEach((item) => {\n resolvedList.push(item.id);\n });\n\n Object.values(contactsDataMap).forEach((item) => {\n const isResolved = resolvedList.some((listItem) => listItem === item.contactId);\n if (!isResolved) {\n finalContactList.push({...item, resolved: false});\n }\n });\n\n for (let n = 0; n < inputList.Resources.length; n += 1) {\n const filteredContact = inputList.Resources[n];\n const {displayName, emails, phoneNumbers, photos} = filteredContact;\n let sipAddresses;\n if (filteredContact[SCIM_WEBEXIDENTITY_USER]) {\n sipAddresses = filteredContact[SCIM_WEBEXIDENTITY_USER].sipAddresses;\n }\n const firstName = filteredContact.name?.givenName;\n const lastName = filteredContact.name?.familyName;\n const manager = filteredContact[SCIM_ENTERPRISE_USER]?.manager?.displayName;\n const department = filteredContact[SCIM_ENTERPRISE_USER]?.department;\n const avatarURL = photos?.length ? photos[0].value : '';\n\n const {contactType, avatarUrlDomain, encryptionKeyUrl, ownerId, groups} =\n contactsDataMap[inputList.Resources[n].id];\n\n const cloudContact = {\n avatarUrlDomain,\n avatarURL,\n contactId: inputList.Resources[n].id,\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 resolved: true,\n };\n\n finalContactList.push(cloudContact);\n }\n } catch (error: any) {\n log.warn('Error occurred while parsing resolved contacts', loggerContext);\n\n return null;\n }\n\n return finalContactList;\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 cloudContactsMap: 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 contacts.map(async (contact) => {\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 cloudContactsMap[contact.contactId] = contact;\n }\n });\n\n // Resolve cloud contacts\n if (Object.keys(cloudContactsMap).length) {\n const contactIdList = Object.keys(cloudContactsMap);\n const query = contactIdList.map((item) => `${SCIM_ID_FILTER} \"${item}\"`).join(OR);\n const result = await scimQuery(query);\n const resolvedContacts = this.resolveCloudContacts(\n cloudContactsMap,\n result.body as SCIMListResponse\n );\n if (resolvedContacts) {\n resolvedContacts.map((item) => contactList.push(item));\n }\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 && newContact.contactId) {\n const query = `${SCIM_ID_FILTER} \"${newContact.contactId}\"`;\n const res = await scimQuery(query);\n const resolvedContact = this.resolveCloudContacts(\n Object.fromEntries([[newContact.contactId, newContact]]) as ContactIdContactInfo,\n res.body as SCIMListResponse\n );\n if (resolvedContact) {\n this.contacts?.push(resolvedContact[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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"}
@@ -774,7 +774,42 @@ describe('ContactClient Tests', function () {
774
774
  manager: undefined,
775
775
  ownerId: 'ownerId',
776
776
  phoneNumbers: undefined,
777
- sipAddresses: undefined
777
+ sipAddresses: undefined,
778
+ resolved: true
779
+ }]);
780
+ });
781
+ it("test resolveContacts function when contactsDataMap list doesn't match resolved list", function () {
782
+ var mockContact = {
783
+ firstName: 'Jane',
784
+ lastName: 'Doe',
785
+ contactId: 'janeDoe'
786
+ };
787
+ var contact = contactClient['resolveCloudContacts']({
788
+ userId: _contactFixtures.mockContactMinimum,
789
+ janeDoe: mockContact
790
+ }, _contactFixtures.mockSCIMMinListResponse.body);
791
+ expect(contact).toEqual([{
792
+ firstName: 'Jane',
793
+ lastName: 'Doe',
794
+ contactId: 'janeDoe',
795
+ resolved: false
796
+ }, {
797
+ avatarURL: '',
798
+ avatarUrlDomain: undefined,
799
+ contactId: 'userId',
800
+ contactType: 'CLOUD',
801
+ department: undefined,
802
+ displayName: undefined,
803
+ emails: undefined,
804
+ encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',
805
+ firstName: undefined,
806
+ groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],
807
+ lastName: undefined,
808
+ manager: undefined,
809
+ ownerId: 'ownerId',
810
+ phoneNumbers: undefined,
811
+ sipAddresses: undefined,
812
+ resolved: true
778
813
  }]);
779
814
  });
780
815
  it('test resolveContacts function encountering an error', function () {
@@ -1 +1 @@
1
- {"version":3,"names":["_types","require","_testUtil","_types2","_ContactsClient","_constants","_Logger","_interopRequireDefault","_constants2","utils","_interopRequireWildcard","_contactFixtures","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","describe","webex","getTestUtilsWebex","contactClient","contactServiceUrl","concat","internal","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","scimUrl","WEBEX_API_BTS","IDENTITY_ENDPOINT_RESOURCE","SCIM_ENDPOINT_RESOURCE","device","orgId","SCIM_USER_FILTER","contactServiceGroupUrl","GROUP_FILTER","serviceErrorCodeHandlerSpy","jest","spyOn","failureResponsePayload","statusCode","body","mockGroupResponse","mockContactResponseBodyOne","groups","beforeEach","createContactsClient","level","LOGGER","INFO","expect","toBeTruthy","getSDKConnector","getWebex","afterEach","request","mockClear","clearAllMocks","errorCodes","name","payloadData","inputStatusCode","expectedData","contacts","mockContactListOne","mockContactGroupListOne","expectedMessage","SUCCESS_MESSAGE","expectedStatusCode","decryptTextList","mockCity","mockCountry","mockState","mockStreet","mockZipCode","mockAvatarURL","mockCompany","mockDisplayNameOne","mockEmail","mockFirstName","mockLastName","mockNumber1","mockNumber2","mockSipAddress","mockTitle","mockGroupName","cloudContactPresent","scimResponse","mockSCIMListResponse","mockContactResponseBodyTwo","mockContactListTwo","mockContactGroupListTwo","mockDisplayNameTwo","mockContactResponseBodyThird","undefined","error","FAILURE_MESSAGE","map","stat","_assign","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","codeObj","respPayload","contactsResponse","wrap","_callee$","_context","prev","next","mockResolvedValueOnce","text","encryption","decryptText","mockRejectedValueOnce","getContacts","sent","toBeCalledTimes","toHaveBeenNthCalledWith","uri","method","HTTP_METHODS","GET","headers","toBeCalledOnceWith","toEqual","data","any","message","not","toBeCalled","Error","file","CONTACTS_FILE","stop","_x","_callee2","_contactsResponse$dat","successResponsePayload","_callee2$","_context2","mockResolvedValue","kms","createUnboundKeys","mockKmsKey","createResource","encryptText","createContactGroup","group","groupId","toBe","count","keyUris","displayName","encryptionKeyUrl","groupType","schemas","_callee3","_contactsResponse$dat2","logInfoSpy","_callee3$","_context3","log","toBeCalledWith","POST","CONTACTS_SCHEMA","_callee4","logSpy","_callee4$","_context4","_callee5","loggerContext","warnSpy","_callee5$","_context5","mockRejectedValue","_callee6","_callee6$","_context6","deleteContactGroup","DELETE","_callee7","response","_callee7$","_context7","_callee8","_res$data$contact","_result$data$contact","mockContactResponse","contact","res","result","_callee8$","_context8","slice","createContact","contactId","DEFAULT_GROUP_NAME","_callee9","_res$data$contact2","successContactGroupResponsePayload","successContactResponsePayload","_callee9$","_context9","contactType","_callee10","_res$data$contact3","successResponsePayloadGroup","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","_callee12$","_context12","deleteContact","_callee13","_callee13$","_context13","userId","mockContactMinimum","mockSCIMMinListResponse","avatarURL","avatarUrlDomain","department","emails","firstName","lastName","manager","ownerId","phoneNumbers","sipAddresses"],"sources":["ContactsClient.test.ts"],"sourcesContent":["import {HTTP_METHODS, SCIMListResponse, WebexRequestPayload} from '../common/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {Contact, ContactResponse, IContacts} from './types';\nimport {createContactsClient} from './ContactsClient';\nimport {\n FAILURE_MESSAGE,\n IDENTITY_ENDPOINT_RESOURCE,\n SCIM_ENDPOINT_RESOURCE,\n SCIM_USER_FILTER,\n SUCCESS_MESSAGE,\n WEBEX_API_BTS,\n} from '../common/constants';\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACT_FILTER,\n ENCRYPT_FILTER,\n DEFAULT_GROUP_NAME,\n USERS,\n GROUP_FILTER,\n CONTACTS_SCHEMA,\n} from './constants';\nimport * as utils from '../common/Utils';\nimport {\n mockCity,\n mockCompany,\n mockContactListTwo,\n mockContactResponseBodyTwo,\n mockContactListOne,\n mockContactResponseBodyOne,\n mockCountry,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSCIMListResponse,\n mockSipAddress,\n mockState,\n mockStreet,\n mockTitle,\n mockZipCode,\n mockDisplayNameTwo,\n mockContactResponseBodyThird,\n mockKmsKey,\n mockGroupName,\n mockContactGroupListOne,\n mockContactGroupListTwo,\n mockAvatarURL,\n mockSCIMMinListResponse,\n mockContactMinimum,\n} from './contactFixtures';\n\ndescribe('ContactClient Tests', () => {\n const webex = getTestUtilsWebex();\n\n let contactClient: IContacts;\n\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`;\n const scimUrl = `${WEBEX_API_BTS}/${IDENTITY_ENDPOINT_RESOURCE}/${SCIM_ENDPOINT_RESOURCE}/${webex.internal.device.orgId}/${SCIM_USER_FILTER}id%20eq%20%22801bb994-343b-4f6b-97ae-d13c91d4b877%22`;\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceGroupUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`;\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const failureResponsePayload = <WebexRequestPayload>{\n statusCode: 503,\n body: {},\n };\n const mockGroupResponse = mockContactResponseBodyOne.groups[0];\n\n beforeEach(() => {\n contactClient = createContactsClient(webex, {level: LOGGER.INFO});\n\n expect(contactClient).toBeTruthy();\n expect(contactClient.getSDKConnector().getWebex()).toBeTruthy();\n });\n\n afterEach(() => {\n webex.request.mockClear();\n jest.clearAllMocks();\n });\n\n /**\n * TestCase inputs\n * name: TestCase name\n * payloadData: Response body\n * inputStatusCode: Status code received in response\n * expectedData: Expected data field in ContactResponse after processing\n * expectedMessage: Expected message field in ContactResponse after processing\n * expectedStatusCode: Expected status code field in ContactResponse after processing\n * decryptTextList: Array of decrypted contact list.\n */\n const errorCodes: {\n name: string;\n payloadData: unknown;\n inputStatusCode: number;\n expectedData: unknown;\n expectedMessage: string;\n expectedStatusCode: number;\n decryptTextList: Array<string>;\n cloudContactPresent?: boolean;\n scimResponse?: SCIMListResponse;\n }[] = [\n {\n name: 'Success case 1: fetch contacts using get contacts api, custom and cloud contact present',\n payloadData: mockContactResponseBodyOne,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListOne, groups: mockContactGroupListOne},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [\n mockCity,\n mockCountry,\n mockState,\n mockStreet,\n mockZipCode,\n mockAvatarURL,\n mockCompany,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSipAddress,\n mockTitle,\n mockNumber2,\n mockSipAddress,\n mockGroupName,\n ],\n cloudContactPresent: true,\n scimResponse: mockSCIMListResponse,\n },\n {\n name: 'Success case 2: fetch contacts using get contacts api, single custom contact with mandatory details present',\n payloadData: mockContactResponseBodyTwo,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListTwo, groups: mockContactGroupListTwo},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [mockDisplayNameTwo, mockGroupName],\n },\n {\n name: 'Success case 3: fetch contacts using get contacts api, no contacts returned',\n payloadData: mockContactResponseBodyThird,\n inputStatusCode: 200,\n expectedData: {contacts: [], groups: []},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [],\n },\n {\n name: 'Failed case: 200 OK with no response body',\n payloadData: undefined,\n inputStatusCode: 200,\n expectedData: {error: '422 Exception has occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 422,\n decryptTextList: [],\n },\n {\n name: 'Failed case 403: fetch contacts using get contacts api',\n payloadData: {error: '403 Forbidden'},\n inputStatusCode: 403,\n expectedData: {error: 'User request is forbidden'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 403,\n decryptTextList: [],\n },\n {\n name: 'Failed case 408: fetch contacts using get contacts api',\n payloadData: {error: '408 Request Timeout'},\n inputStatusCode: 408,\n expectedData: {error: 'Request to the server timedout'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 408,\n decryptTextList: [],\n },\n {\n name: 'Failed case 500: fetch contacts using get contacts api',\n payloadData: {error: '500 Internal Server Error'},\n inputStatusCode: 500,\n expectedData: {error: 'Internal server error occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 500,\n decryptTextList: [],\n },\n {\n name: 'Failed case 503: fetch contacts using get contacts api',\n payloadData: {error: '503 Service Unavailable'},\n inputStatusCode: 503,\n expectedData: {error: 'Unable to establish a connection with the server'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 503,\n decryptTextList: [],\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(errorCodes)('%s', async (codeObj) => {\n const respPayload = {\n statusCode: codeObj.inputStatusCode,\n };\n\n if (codeObj.inputStatusCode === 200) {\n respPayload['body'] = codeObj.payloadData;\n webex.request.mockResolvedValueOnce(respPayload);\n codeObj.decryptTextList.forEach((text) => {\n webex.internal.encryption.decryptText.mockResolvedValueOnce(text);\n });\n\n if (codeObj.scimResponse) {\n webex.request.mockResolvedValueOnce(mockSCIMListResponse);\n }\n } else {\n respPayload['message'] = FAILURE_MESSAGE;\n respPayload['data'] = codeObj.payloadData;\n webex.request.mockRejectedValueOnce(respPayload);\n }\n\n const contactsResponse = await contactClient.getContacts();\n\n if (codeObj.inputStatusCode === 200) {\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toBeCalledTimes(2);\n } else {\n expect(webex.request).toBeCalledTimes(1);\n }\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n }\n } else {\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n }\n\n expect(contactsResponse).toEqual({\n data: expect.any(Object),\n message: codeObj.expectedMessage,\n statusCode: codeObj.expectedStatusCode,\n });\n\n if (codeObj.expectedMessage === SUCCESS_MESSAGE) {\n expect(serviceErrorCodeHandlerSpy).not.toBeCalled();\n } else {\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n codeObj.payloadData ? respPayload : expect.any(Error),\n {\n file: CONTACTS_FILE,\n method: 'getContacts',\n }\n );\n }\n });\n\n it('create a contact group without encryptionKey', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = '';\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText\n .mockResolvedValueOnce('Encrypted Other')\n .mockResolvedValueOnce('Encrypted Top');\n\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Other',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Top',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with existing key info', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockResolvedValue(successResponsePayload);\n\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted Top Contacts');\n const logInfoSpy = jest.spyOn(log, 'info');\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(logInfoSpy).not.toBeCalledWith('Requesting kms for a new KRO and key', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted Top Contacts',\n encryptionKeyUrl: mockContactGroupListOne[0].encryptionKeyUrl,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with same displayName', async () => {\n contactClient['groups'] = mockContactResponseBodyOne.groups;\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const logSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup(mockGroupResponse.displayName);\n\n expect(webex.request).not.toBeCalled();\n expect(contactsResponse.statusCode).toBe(400);\n expect(logSpy).toBeCalledOnceWith(\n `Group name ${mockGroupResponse.displayName} already exists.`,\n {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n }\n );\n expect(contactClient['groups']).toEqual(mockContactResponseBodyOne.groups);\n });\n\n it('create a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup('New group');\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(1, 'Unable to create contact group.', loggerContext);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('delete a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'deleteContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.deleteContactGroup(mockGroupResponse.groupId);\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.DELETE,\n uri: `${contactServiceGroupUrl}/${mockGroupResponse.groupId}`,\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 1,\n `Unable to delete contact group ${mockGroupResponse.groupId}`,\n loggerContext\n );\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('successful deletion of contact group', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['groups'] = [mockContactGroupListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContactGroup(mockContactGroupListOne[0].groupId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceGroupUrl}/${mockContactGroupListOne[0].groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['groups']).toEqual([]);\n });\n\n it('create a contact with an existing group', async () => {\n const mockContactResponse = mockContactResponseBodyTwo.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted contact name');\n const logSpy = jest.spyOn(log, 'info');\n\n contactClient['groups'] = mockContactGroupListOne;\n contactClient['encryptionKeyUrl'] = mockContactGroupListOne[0].encryptionKeyUrl;\n\n const contact = mockContactListTwo.slice()[0] as Contact;\n\n contact.groups = [];\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n\n expect(webex.internal.encryption.encryptText).toBeCalledOnceWith(\n mockContactGroupListOne[0].encryptionKeyUrl,\n contact.displayName\n );\n\n expect(webex.request).toBeCalledOnceWith({\n body: {\n ...contact,\n displayName: 'Encrypted contact name',\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n });\n\n logSpy.mockClear();\n\n /* for coverage */\n const result: ContactResponse = await contactClient.createContact(contact);\n\n expect(result.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n });\n\n it('create a contact without a group and encryptionKey', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[1];\n\n contactClient['groups'] = [];\n contactClient['encryptionKey'] = '';\n contactClient['defaultGroupId'] = '';\n const successContactGroupResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n const successContactResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request\n .mockResolvedValueOnce(successContactGroupResponsePayload)\n .mockResolvedValueOnce(successContactResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n const contact = {\n contactType: 'CUSTOM',\n } as Contact;\n\n const res = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n body: {\n contactType: 'CUSTOM',\n encryptionKeyUrl: mockKmsKey.uri,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n schemas: CONTACTS_SCHEMA,\n },\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n });\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n });\n\n it('create a cloud contact with no existing groups', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n const successResponsePayloadGroup = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponseBodyOne.groups[0],\n };\n\n webex.request\n .mockResolvedValueOnce(successResponsePayloadGroup)\n .mockResolvedValueOnce(successResponsePayload)\n .mockResolvedValueOnce(mockSCIMListResponse);\n\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n\n const contact = {\n contactType: 'CLOUD',\n } as Contact;\n\n contact.groups = [];\n\n let res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(400);\n expect(res.data.error).toEqual('contactId is required for contactType:CLOUD.');\n\n contact.contactId = mockContactResponse.contactId;\n\n res = await contactClient.createContact(contact);\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n\n expect(webex.request).toBeCalledTimes(3);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n method: HTTP_METHODS.POST,\n uri: contactServiceGroupUrl,\n body: {\n displayName: 'Encrypted group name',\n groupType: 'NORMAL',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n body: {\n contactId: mockContactResponse.contactId,\n contactType: 'CLOUD',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(3, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n });\n\n it('create a contact - service unavailable', async () => {\n webex.request.mockRejectedValue(failureResponsePayload);\n\n contactClient['groups'] = mockContactGroupListOne.slice();\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n const contact = {\n contactType: 'CLOUD',\n contactId: '801bb994-343b-4f6b-97ae-d13c91d4b877',\n } as Contact;\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n body: {\n ...contact,\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'createContact',\n });\n expect(res.statusCode).toEqual(503);\n });\n\n it('successful deletion of contacts', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['contacts'] = [mockContactListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['contacts']).toEqual([]);\n });\n\n it('delete a contact - service unavailable', async () => {\n contactClient['contacts'] = mockContactListOne;\n\n webex.request.mockRejectedValue(failureResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'deleteContact',\n });\n\n expect(contactClient['contacts']).toEqual(mockContactListOne);\n });\n\n it('test resolveContacts function for a minimal contact with few details', () => {\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum},\n mockSCIMMinListResponse.body\n );\n\n expect(contact).toEqual([\n {\n avatarURL: '',\n avatarUrlDomain: undefined,\n contactId: 'userId',\n contactType: 'CLOUD',\n department: undefined,\n displayName: undefined,\n emails: undefined,\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n firstName: undefined,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n lastName: undefined,\n manager: undefined,\n ownerId: 'ownerId',\n phoneNumbers: undefined,\n sipAddresses: undefined,\n },\n ]);\n });\n\n it('test resolveContacts function encountering an error', () => {\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum},\n mockSCIMMinListResponse\n );\n\n expect(contact).toEqual(null);\n });\n});\n"],"mappings":"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"}
1
+ {"version":3,"names":["_types","require","_testUtil","_types2","_ContactsClient","_constants","_Logger","_interopRequireDefault","_constants2","utils","_interopRequireWildcard","_contactFixtures","_getRequireWildcardCache","e","_WeakMap","r","t","__esModule","_typeof","default","has","get","n","__proto__","a","_Object$defineProperty","_Object$getOwnPropertyDescriptor","u","Object","prototype","hasOwnProperty","call","i","set","ownKeys","_Object$keys","_Object$getOwnPropertySymbols","o","filter","enumerable","push","apply","_objectSpread","arguments","length","forEach","_defineProperty2","_Object$getOwnPropertyDescriptors","_Object$defineProperties","describe","webex","getTestUtilsWebex","contactClient","contactServiceUrl","concat","internal","services","_serviceUrls","contactsService","ENCRYPT_FILTER","USERS","CONTACT_FILTER","scimUrl","WEBEX_API_BTS","IDENTITY_ENDPOINT_RESOURCE","SCIM_ENDPOINT_RESOURCE","device","orgId","SCIM_USER_FILTER","contactServiceGroupUrl","GROUP_FILTER","serviceErrorCodeHandlerSpy","jest","spyOn","failureResponsePayload","statusCode","body","mockGroupResponse","mockContactResponseBodyOne","groups","beforeEach","createContactsClient","level","LOGGER","INFO","expect","toBeTruthy","getSDKConnector","getWebex","afterEach","request","mockClear","clearAllMocks","errorCodes","name","payloadData","inputStatusCode","expectedData","contacts","mockContactListOne","mockContactGroupListOne","expectedMessage","SUCCESS_MESSAGE","expectedStatusCode","decryptTextList","mockCity","mockCountry","mockState","mockStreet","mockZipCode","mockAvatarURL","mockCompany","mockDisplayNameOne","mockEmail","mockFirstName","mockLastName","mockNumber1","mockNumber2","mockSipAddress","mockTitle","mockGroupName","cloudContactPresent","scimResponse","mockSCIMListResponse","mockContactResponseBodyTwo","mockContactListTwo","mockContactGroupListTwo","mockDisplayNameTwo","mockContactResponseBodyThird","undefined","error","FAILURE_MESSAGE","map","stat","_assign","toString","it","each","_ref","_asyncToGenerator2","_regenerator","mark","_callee","codeObj","respPayload","contactsResponse","wrap","_callee$","_context","prev","next","mockResolvedValueOnce","text","encryption","decryptText","mockRejectedValueOnce","getContacts","sent","toBeCalledTimes","toHaveBeenNthCalledWith","uri","method","HTTP_METHODS","GET","headers","toBeCalledOnceWith","toEqual","data","any","message","not","toBeCalled","Error","file","CONTACTS_FILE","stop","_x","_callee2","_contactsResponse$dat","successResponsePayload","_callee2$","_context2","mockResolvedValue","kms","createUnboundKeys","mockKmsKey","createResource","encryptText","createContactGroup","group","groupId","toBe","count","keyUris","displayName","encryptionKeyUrl","groupType","schemas","_callee3","_contactsResponse$dat2","logInfoSpy","_callee3$","_context3","log","toBeCalledWith","POST","CONTACTS_SCHEMA","_callee4","logSpy","_callee4$","_context4","_callee5","loggerContext","warnSpy","_callee5$","_context5","mockRejectedValue","_callee6","_callee6$","_context6","deleteContactGroup","DELETE","_callee7","response","_callee7$","_context7","_callee8","_res$data$contact","_result$data$contact","mockContactResponse","contact","res","result","_callee8$","_context8","slice","createContact","contactId","DEFAULT_GROUP_NAME","_callee9","_res$data$contact2","successContactGroupResponsePayload","successContactResponsePayload","_callee9$","_context9","contactType","_callee10","_res$data$contact3","successResponsePayloadGroup","_callee10$","_context10","_callee11","_callee11$","_context11","_callee12","_callee12$","_context12","deleteContact","_callee13","_callee13$","_context13","userId","mockContactMinimum","mockSCIMMinListResponse","avatarURL","avatarUrlDomain","department","emails","firstName","lastName","manager","ownerId","phoneNumbers","sipAddresses","resolved","mockContact","janeDoe"],"sources":["ContactsClient.test.ts"],"sourcesContent":["import {HTTP_METHODS, SCIMListResponse, WebexRequestPayload} from '../common/types';\nimport {getTestUtilsWebex} from '../common/testUtil';\nimport {LOGGER} from '../Logger/types';\nimport {Contact, ContactResponse, IContacts} from './types';\nimport {createContactsClient} from './ContactsClient';\nimport {\n FAILURE_MESSAGE,\n IDENTITY_ENDPOINT_RESOURCE,\n SCIM_ENDPOINT_RESOURCE,\n SCIM_USER_FILTER,\n SUCCESS_MESSAGE,\n WEBEX_API_BTS,\n} from '../common/constants';\nimport log from '../Logger';\nimport {\n CONTACTS_FILE,\n CONTACT_FILTER,\n ENCRYPT_FILTER,\n DEFAULT_GROUP_NAME,\n USERS,\n GROUP_FILTER,\n CONTACTS_SCHEMA,\n} from './constants';\nimport * as utils from '../common/Utils';\nimport {\n mockCity,\n mockCompany,\n mockContactListTwo,\n mockContactResponseBodyTwo,\n mockContactListOne,\n mockContactResponseBodyOne,\n mockCountry,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSCIMListResponse,\n mockSipAddress,\n mockState,\n mockStreet,\n mockTitle,\n mockZipCode,\n mockDisplayNameTwo,\n mockContactResponseBodyThird,\n mockKmsKey,\n mockGroupName,\n mockContactGroupListOne,\n mockContactGroupListTwo,\n mockAvatarURL,\n mockSCIMMinListResponse,\n mockContactMinimum,\n} from './contactFixtures';\n\ndescribe('ContactClient Tests', () => {\n const webex = getTestUtilsWebex();\n\n let contactClient: IContacts;\n\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${CONTACT_FILTER}`;\n const scimUrl = `${WEBEX_API_BTS}/${IDENTITY_ENDPOINT_RESOURCE}/${SCIM_ENDPOINT_RESOURCE}/${webex.internal.device.orgId}/${SCIM_USER_FILTER}id%20eq%20%22801bb994-343b-4f6b-97ae-d13c91d4b877%22`;\n // eslint-disable-next-line no-underscore-dangle\n const contactServiceGroupUrl = `${webex.internal.services._serviceUrls.contactsService}/${ENCRYPT_FILTER}/${USERS}/${GROUP_FILTER}`;\n const serviceErrorCodeHandlerSpy = jest.spyOn(utils, 'serviceErrorCodeHandler');\n const failureResponsePayload = <WebexRequestPayload>{\n statusCode: 503,\n body: {},\n };\n const mockGroupResponse = mockContactResponseBodyOne.groups[0];\n\n beforeEach(() => {\n contactClient = createContactsClient(webex, {level: LOGGER.INFO});\n\n expect(contactClient).toBeTruthy();\n expect(contactClient.getSDKConnector().getWebex()).toBeTruthy();\n });\n\n afterEach(() => {\n webex.request.mockClear();\n jest.clearAllMocks();\n });\n\n /**\n * TestCase inputs\n * name: TestCase name\n * payloadData: Response body\n * inputStatusCode: Status code received in response\n * expectedData: Expected data field in ContactResponse after processing\n * expectedMessage: Expected message field in ContactResponse after processing\n * expectedStatusCode: Expected status code field in ContactResponse after processing\n * decryptTextList: Array of decrypted contact list.\n */\n const errorCodes: {\n name: string;\n payloadData: unknown;\n inputStatusCode: number;\n expectedData: unknown;\n expectedMessage: string;\n expectedStatusCode: number;\n decryptTextList: Array<string>;\n cloudContactPresent?: boolean;\n scimResponse?: SCIMListResponse;\n }[] = [\n {\n name: 'Success case 1: fetch contacts using get contacts api, custom and cloud contact present',\n payloadData: mockContactResponseBodyOne,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListOne, groups: mockContactGroupListOne},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [\n mockCity,\n mockCountry,\n mockState,\n mockStreet,\n mockZipCode,\n mockAvatarURL,\n mockCompany,\n mockDisplayNameOne,\n mockEmail,\n mockFirstName,\n mockLastName,\n mockNumber1,\n mockNumber2,\n mockSipAddress,\n mockTitle,\n mockNumber2,\n mockSipAddress,\n mockGroupName,\n ],\n cloudContactPresent: true,\n scimResponse: mockSCIMListResponse,\n },\n {\n name: 'Success case 2: fetch contacts using get contacts api, single custom contact with mandatory details present',\n payloadData: mockContactResponseBodyTwo,\n inputStatusCode: 200,\n expectedData: {contacts: mockContactListTwo, groups: mockContactGroupListTwo},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [mockDisplayNameTwo, mockGroupName],\n },\n {\n name: 'Success case 3: fetch contacts using get contacts api, no contacts returned',\n payloadData: mockContactResponseBodyThird,\n inputStatusCode: 200,\n expectedData: {contacts: [], groups: []},\n expectedMessage: SUCCESS_MESSAGE,\n expectedStatusCode: 200,\n decryptTextList: [],\n },\n {\n name: 'Failed case: 200 OK with no response body',\n payloadData: undefined,\n inputStatusCode: 200,\n expectedData: {error: '422 Exception has occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 422,\n decryptTextList: [],\n },\n {\n name: 'Failed case 403: fetch contacts using get contacts api',\n payloadData: {error: '403 Forbidden'},\n inputStatusCode: 403,\n expectedData: {error: 'User request is forbidden'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 403,\n decryptTextList: [],\n },\n {\n name: 'Failed case 408: fetch contacts using get contacts api',\n payloadData: {error: '408 Request Timeout'},\n inputStatusCode: 408,\n expectedData: {error: 'Request to the server timedout'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 408,\n decryptTextList: [],\n },\n {\n name: 'Failed case 500: fetch contacts using get contacts api',\n payloadData: {error: '500 Internal Server Error'},\n inputStatusCode: 500,\n expectedData: {error: 'Internal server error occurred'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 500,\n decryptTextList: [],\n },\n {\n name: 'Failed case 503: fetch contacts using get contacts api',\n payloadData: {error: '503 Service Unavailable'},\n inputStatusCode: 503,\n expectedData: {error: 'Unable to establish a connection with the server'},\n expectedMessage: FAILURE_MESSAGE,\n expectedStatusCode: 503,\n decryptTextList: [],\n },\n ].map((stat) =>\n Object.assign(stat, {\n toString() {\n /* eslint-disable dot-notation */\n return this['name'];\n },\n })\n );\n\n it.each(errorCodes)('%s', async (codeObj) => {\n const respPayload = {\n statusCode: codeObj.inputStatusCode,\n };\n\n if (codeObj.inputStatusCode === 200) {\n respPayload['body'] = codeObj.payloadData;\n webex.request.mockResolvedValueOnce(respPayload);\n codeObj.decryptTextList.forEach((text) => {\n webex.internal.encryption.decryptText.mockResolvedValueOnce(text);\n });\n\n if (codeObj.scimResponse) {\n webex.request.mockResolvedValueOnce(mockSCIMListResponse);\n }\n } else {\n respPayload['message'] = FAILURE_MESSAGE;\n respPayload['data'] = codeObj.payloadData;\n webex.request.mockRejectedValueOnce(respPayload);\n }\n\n const contactsResponse = await contactClient.getContacts();\n\n if (codeObj.inputStatusCode === 200) {\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toBeCalledTimes(2);\n } else {\n expect(webex.request).toBeCalledTimes(1);\n }\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n\n if (codeObj.cloudContactPresent) {\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n }\n } else {\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.GET,\n });\n }\n\n expect(contactsResponse).toEqual({\n data: expect.any(Object),\n message: codeObj.expectedMessage,\n statusCode: codeObj.expectedStatusCode,\n });\n\n if (codeObj.expectedMessage === SUCCESS_MESSAGE) {\n expect(serviceErrorCodeHandlerSpy).not.toBeCalled();\n } else {\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(\n codeObj.payloadData ? respPayload : expect.any(Error),\n {\n file: CONTACTS_FILE,\n method: 'getContacts',\n }\n );\n }\n });\n\n it('create a contact group without encryptionKey', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = '';\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText\n .mockResolvedValueOnce('Encrypted Other')\n .mockResolvedValueOnce('Encrypted Top');\n\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Other',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n uri: contactServiceGroupUrl,\n method: 'POST',\n body: {\n displayName: 'Encrypted Top',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with existing key info', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockResolvedValue(successResponsePayload);\n\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted Top Contacts');\n const logInfoSpy = jest.spyOn(log, 'info');\n const contactsResponse = await contactClient.createContactGroup('Top Contacts');\n\n expect(contactsResponse.statusCode).toEqual(201);\n expect(contactsResponse.data.group?.groupId).toBe(mockGroupResponse.groupId);\n expect(logInfoSpy).not.toBeCalledWith('Requesting kms for a new KRO and key', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted Top Contacts',\n encryptionKeyUrl: mockContactGroupListOne[0].encryptionKeyUrl,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n });\n\n expect(contactClient['groups'].length).toEqual(2);\n expect(contactClient['groups'][1].displayName).toEqual('Top Contacts');\n });\n\n it('create a contact group with same displayName', async () => {\n contactClient['groups'] = mockContactResponseBodyOne.groups;\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const logSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup(mockGroupResponse.displayName);\n\n expect(webex.request).not.toBeCalled();\n expect(contactsResponse.statusCode).toBe(400);\n expect(logSpy).toBeCalledOnceWith(\n `Group name ${mockGroupResponse.displayName} already exists.`,\n {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n }\n );\n expect(contactClient['groups']).toEqual(mockContactResponseBodyOne.groups);\n });\n\n it('create a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'createContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.createContactGroup('New group');\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n groupType: 'NORMAL',\n schemas: 'urn:cisco:codev:identity:contact:core:1.0',\n },\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(1, 'Unable to create contact group.', loggerContext);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('delete a contact group - service unavailable', async () => {\n const loggerContext = {\n file: CONTACTS_FILE,\n method: 'deleteContactGroup',\n };\n\n contactClient['groups'] = mockContactGroupListOne;\n webex.request.mockRejectedValue(failureResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n const warnSpy = jest.spyOn(log, 'warn');\n const contactsResponse = await contactClient.deleteContactGroup(mockGroupResponse.groupId);\n\n expect(contactsResponse.statusCode).toBe(503);\n expect(webex.request).toBeCalledOnceWith({\n method: HTTP_METHODS.DELETE,\n uri: `${contactServiceGroupUrl}/${mockGroupResponse.groupId}`,\n });\n expect(warnSpy).toBeCalledTimes(2);\n expect(warnSpy).toHaveBeenNthCalledWith(\n 1,\n `Unable to delete contact group ${mockGroupResponse.groupId}`,\n loggerContext\n );\n expect(warnSpy).toHaveBeenNthCalledWith(\n 2,\n '503 Unable to establish a connection with the server',\n loggerContext\n );\n\n expect(contactClient['groups']).toEqual(mockContactGroupListOne);\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, loggerContext);\n });\n\n it('successful deletion of contact group', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['groups'] = [mockContactGroupListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContactGroup(mockContactGroupListOne[0].groupId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceGroupUrl}/${mockContactGroupListOne[0].groupId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['groups']).toEqual([]);\n });\n\n it('create a contact with an existing group', async () => {\n const mockContactResponse = mockContactResponseBodyTwo.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request.mockResolvedValue(successResponsePayload);\n webex.internal.encryption.encryptText.mockResolvedValue('Encrypted contact name');\n const logSpy = jest.spyOn(log, 'info');\n\n contactClient['groups'] = mockContactGroupListOne;\n contactClient['encryptionKeyUrl'] = mockContactGroupListOne[0].encryptionKeyUrl;\n\n const contact = mockContactListTwo.slice()[0] as Contact;\n\n contact.groups = [];\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n\n expect(logSpy).not.toBeCalledWith('Created a KRO and encryptionKeyUrl', {\n file: CONTACTS_FILE,\n method: 'createNewEncryptionKeyUrl',\n });\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n\n expect(webex.internal.encryption.encryptText).toBeCalledOnceWith(\n mockContactGroupListOne[0].encryptionKeyUrl,\n contact.displayName\n );\n\n expect(webex.request).toBeCalledOnceWith({\n body: {\n ...contact,\n displayName: 'Encrypted contact name',\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n });\n\n logSpy.mockClear();\n\n /* for coverage */\n const result: ContactResponse = await contactClient.createContact(contact);\n\n expect(result.data.contact?.contactId).toBe(mockContactResponse.contactId);\n expect(logSpy).not.toBeCalledWith(`Creating a default group: ${DEFAULT_GROUP_NAME}`, {\n file: CONTACTS_FILE,\n method: 'fetchEncryptionKeyUrl',\n });\n });\n\n it('create a contact without a group and encryptionKey', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[1];\n\n contactClient['groups'] = [];\n contactClient['encryptionKey'] = '';\n contactClient['defaultGroupId'] = '';\n const successContactGroupResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockGroupResponse,\n };\n const successContactResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n\n webex.request\n .mockResolvedValueOnce(successContactGroupResponsePayload)\n .mockResolvedValueOnce(successContactResponsePayload);\n webex.internal.encryption.kms.createUnboundKeys.mockResolvedValue([mockKmsKey]);\n webex.internal.encryption.kms.createResource.mockResolvedValue(mockKmsKey);\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n const contact = {\n contactType: 'CUSTOM',\n } as Contact;\n\n const res = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(201);\n\n expect(webex.request).toBeCalledTimes(2);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n body: {\n displayName: 'Encrypted group name',\n encryptionKeyUrl: mockKmsKey.uri,\n groupType: 'NORMAL',\n schemas: CONTACTS_SCHEMA,\n },\n uri: contactServiceGroupUrl,\n method: HTTP_METHODS.POST,\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n body: {\n contactType: 'CUSTOM',\n encryptionKeyUrl: mockKmsKey.uri,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n schemas: CONTACTS_SCHEMA,\n },\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n });\n expect(webex.internal.encryption.kms.createUnboundKeys).toBeCalledOnceWith({count: 1});\n expect(webex.internal.encryption.kms.createResource).toBeCalledOnceWith({\n keyUris: [mockKmsKey.uri],\n });\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n });\n\n it('create a cloud contact with no existing groups', async () => {\n const mockContactResponse = mockContactResponseBodyOne.contacts[0];\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponse,\n };\n const successResponsePayloadGroup = <WebexRequestPayload>{\n statusCode: 201,\n body: mockContactResponseBodyOne.groups[0],\n };\n\n webex.request\n .mockResolvedValueOnce(successResponsePayloadGroup)\n .mockResolvedValueOnce(successResponsePayload)\n .mockResolvedValueOnce(mockSCIMListResponse);\n\n webex.internal.encryption.encryptText.mockResolvedValueOnce('Encrypted group name');\n\n contactClient['groups'] = [];\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n\n const contact = {\n contactType: 'CLOUD',\n } as Contact;\n\n contact.groups = [];\n\n let res: ContactResponse = await contactClient.createContact(contact);\n\n expect(res.statusCode).toEqual(400);\n expect(res.data.error).toEqual('contactId is required for contactType:CLOUD.');\n\n contact.contactId = mockContactResponse.contactId;\n\n res = await contactClient.createContact(contact);\n expect(res.statusCode).toEqual(201);\n expect(res.data.contact?.contactId).toBe(mockContactResponse.contactId);\n\n expect(webex.request).toBeCalledTimes(3);\n expect(webex.request).toHaveBeenNthCalledWith(1, {\n method: HTTP_METHODS.POST,\n uri: contactServiceGroupUrl,\n body: {\n displayName: 'Encrypted group name',\n groupType: 'NORMAL',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(2, {\n method: HTTP_METHODS.POST,\n uri: contactServiceUrl,\n body: {\n contactId: mockContactResponse.contactId,\n contactType: 'CLOUD',\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n schemas: CONTACTS_SCHEMA,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n },\n });\n expect(webex.request).toHaveBeenNthCalledWith(3, {\n uri: scimUrl,\n method: HTTP_METHODS.GET,\n headers: {\n 'cisco-device-url':\n 'https://wdm-intb.ciscospark.com/wdm/api/v1/devices/c5ae3b86-1bb7-40f1-a6a9-c296ee7e61d5',\n 'spark-user-agent': 'webex-calling/beta',\n },\n });\n });\n\n it('create a contact - service unavailable', async () => {\n webex.request.mockRejectedValue(failureResponsePayload);\n\n contactClient['groups'] = mockContactGroupListOne.slice();\n contactClient['encryptionKeyUrl'] = mockContactResponseBodyOne.groups[0].encryptionKeyUrl;\n const contact = {\n contactType: 'CLOUD',\n contactId: '801bb994-343b-4f6b-97ae-d13c91d4b877',\n } as Contact;\n\n const res: ContactResponse = await contactClient.createContact(contact);\n\n expect(webex.request).toBeCalledOnceWith({\n uri: contactServiceUrl,\n method: HTTP_METHODS.POST,\n body: {\n ...contact,\n encryptionKeyUrl: mockContactResponseBodyOne.groups[0].encryptionKeyUrl,\n groups: [mockContactGroupListOne[0].groupId],\n schemas: CONTACTS_SCHEMA,\n },\n });\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'createContact',\n });\n expect(res.statusCode).toEqual(503);\n });\n\n it('successful deletion of contacts', async () => {\n const successResponsePayload = <WebexRequestPayload>{\n statusCode: 204,\n };\n\n contactClient['contacts'] = [mockContactListOne[0]];\n webex.request.mockResolvedValue(successResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(204);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n expect(contactClient['contacts']).toEqual([]);\n });\n\n it('delete a contact - service unavailable', async () => {\n contactClient['contacts'] = mockContactListOne;\n\n webex.request.mockRejectedValue(failureResponsePayload);\n const response = await contactClient.deleteContact(mockContactListOne[0].contactId);\n\n expect(response.statusCode).toEqual(503);\n expect(webex.request).toBeCalledOnceWith({\n uri: `${contactServiceUrl}/${mockContactListOne[0].contactId}`,\n method: HTTP_METHODS.DELETE,\n });\n\n expect(serviceErrorCodeHandlerSpy).toBeCalledOnceWith(failureResponsePayload, {\n file: CONTACTS_FILE,\n method: 'deleteContact',\n });\n\n expect(contactClient['contacts']).toEqual(mockContactListOne);\n });\n\n it('test resolveContacts function for a minimal contact with few details', () => {\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum},\n mockSCIMMinListResponse.body\n );\n\n expect(contact).toEqual([\n {\n avatarURL: '',\n avatarUrlDomain: undefined,\n contactId: 'userId',\n contactType: 'CLOUD',\n department: undefined,\n displayName: undefined,\n emails: undefined,\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n firstName: undefined,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n lastName: undefined,\n manager: undefined,\n ownerId: 'ownerId',\n phoneNumbers: undefined,\n sipAddresses: undefined,\n resolved: true,\n },\n ]);\n });\n\n it(\"test resolveContacts function when contactsDataMap list doesn't match resolved list\", () => {\n const mockContact = {\n firstName: 'Jane',\n lastName: 'Doe',\n contactId: 'janeDoe',\n };\n\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum, janeDoe: mockContact},\n mockSCIMMinListResponse.body\n );\n\n expect(contact).toEqual([\n {\n firstName: 'Jane',\n lastName: 'Doe',\n contactId: 'janeDoe',\n resolved: false,\n },\n {\n avatarURL: '',\n avatarUrlDomain: undefined,\n contactId: 'userId',\n contactType: 'CLOUD',\n department: undefined,\n displayName: undefined,\n emails: undefined,\n encryptionKeyUrl: 'kms://cisco.com/keys/dcf18f9d-155e-44ff-ad61-c8a69b7103ab',\n firstName: undefined,\n groups: ['1561977e-3443-4ccf-a591-69686275d7d2'],\n lastName: undefined,\n manager: undefined,\n ownerId: 'ownerId',\n phoneNumbers: undefined,\n sipAddresses: undefined,\n resolved: true,\n },\n ]);\n });\n\n it('test resolveContacts function encountering an error', () => {\n const contact = contactClient['resolveCloudContacts'](\n {userId: mockContactMinimum},\n mockSCIMMinListResponse\n );\n\n expect(contact).toEqual(null);\n });\n});\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":["ContactType","exports","GroupType"],"sources":["types.ts"],"sourcesContent":["import {ISDKConnector} from '../SDKConnector/types';\nimport {Address, PhoneNumber, URIAddress} from '../common/types';\n\nexport enum ContactType {\n CUSTOM = 'CUSTOM',\n CLOUD = 'CLOUD',\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?: Address;\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?: URIAddress[];\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?: PhoneNumber[];\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?: URIAddress[];\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,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAKvB;AACA;AACA;AAFA,IA0FYE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAKrB;AACA;AACA;AA6CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
1
+ {"version":3,"names":["ContactType","exports","GroupType"],"sources":["types.ts"],"sourcesContent":["import {ISDKConnector} from '../SDKConnector/types';\nimport {Address, PhoneNumber, URIAddress} from '../common/types';\n\nexport enum ContactType {\n CUSTOM = 'CUSTOM',\n CLOUD = 'CLOUD',\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?: Address;\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?: URIAddress[];\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?: PhoneNumber[];\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?: URIAddress[];\n /**\n * This field indicates whether the contact was resolved successfully.\n */\n resolved: boolean;\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,GAAAC,OAAA,CAAAD,WAAA,0BAAXA,WAAW;EAAXA,WAAW;EAAXA,WAAW;EAAA,OAAXA,WAAW;AAAA;AAKvB;AACA;AACA;AAFA,IA0FYE,SAAS,GAAAD,OAAA,CAAAC,SAAA,0BAATA,SAAS;EAATA,SAAS;EAATA,SAAS;EAAA,OAATA,SAAS;AAAA;AAKrB;AACA;AACA;AA6CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA"}
@@ -134,7 +134,17 @@ export class ContactsClient {
134
134
  method: 'resolveCloudContacts',
135
135
  };
136
136
  const finalContactList = [];
137
+ const resolvedList = [];
137
138
  try {
139
+ inputList.Resources.forEach((item) => {
140
+ resolvedList.push(item.id);
141
+ });
142
+ Object.values(contactsDataMap).forEach((item) => {
143
+ const isResolved = resolvedList.some((listItem) => listItem === item.contactId);
144
+ if (!isResolved) {
145
+ finalContactList.push({ ...item, resolved: false });
146
+ }
147
+ });
138
148
  for (let n = 0; n < inputList.Resources.length; n += 1) {
139
149
  const filteredContact = inputList.Resources[n];
140
150
  const { displayName, emails, phoneNumbers, photos } = filteredContact;
@@ -164,6 +174,7 @@ export class ContactsClient {
164
174
  ownerId,
165
175
  phoneNumbers,
166
176
  sipAddresses,
177
+ resolved: true,
167
178
  };
168
179
  finalContactList.push(cloudContact);
169
180
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ContactsClient.d.ts","sourceRoot":"","sources":["../../../src/Contacts/ContactsClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAgB9D,OAAO,EACL,OAAO,EAGP,eAAe,EAEf,SAAS,EAET,SAAS,EACV,MAAM,SAAS,CAAC;AAcjB,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,QAAQ,CAAwB;IAExC,OAAO,CAAC,cAAc,CAAS;gBAKnB,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe;YAoBtC,oBAAoB;YAuBpB,oBAAoB;YAsBpB,cAAc;YAkEd,cAAc;IA+D5B,OAAO,CAAC,oBAAoB;IA2Df,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;YAkFtC,yBAAyB;YAsBzB,qBAAqB;YAoCrB,iBAAiB;IAuClB,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,eAAe,CAAC;IA6Ed,kBAAkB,CAAC,OAAO,EAAE,MAAM;IA2ClC,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IA2G7D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyChE,eAAe,IAAI,aAAa;CAGxC;AAQD,eAAO,MAAM,oBAAoB,UAAW,QAAQ,UAAU,eAAe,KAAG,SAC7C,CAAC"}
1
+ {"version":3,"file":"ContactsClient.d.ts","sourceRoot":"","sources":["../../../src/Contacts/ContactsClient.ts"],"names":[],"mappings":"AASA,OAAO,EAAC,eAAe,EAAC,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAC,aAAa,EAAE,QAAQ,EAAC,MAAM,uBAAuB,CAAC;AAgB9D,OAAO,EACL,OAAO,EAGP,eAAe,EAEf,SAAS,EAET,SAAS,EACV,MAAM,SAAS,CAAC;AAcjB,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAgB;IAEpC,OAAO,CAAC,gBAAgB,CAAS;IAEjC,OAAO,CAAC,KAAK,CAAW;IAExB,OAAO,CAAC,MAAM,CAA6B;IAE3C,OAAO,CAAC,QAAQ,CAAwB;IAExC,OAAO,CAAC,cAAc,CAAS;gBAKnB,KAAK,EAAE,QAAQ,EAAE,MAAM,EAAE,eAAe;YAoBtC,oBAAoB;YAuBpB,oBAAoB;YAsBpB,cAAc;YAkEd,cAAc;IA+D5B,OAAO,CAAC,oBAAoB;IAwEf,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC;YAkFtC,yBAAyB;YAsBzB,qBAAqB;YAoCrB,iBAAiB;IAuClB,kBAAkB,CAC7B,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,eAAe,CAAC;IA6Ed,kBAAkB,CAAC,OAAO,EAAE,MAAM;IA2ClC,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC;IA2G7D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyChE,eAAe,IAAI,aAAa;CAGxC;AAQD,eAAO,MAAM,oBAAoB,UAAW,QAAQ,UAAU,eAAe,KAAG,SAC7C,CAAC"}
@@ -25,7 +25,7 @@ export type Contact = {
25
25
  primaryContactMethod?: string;
26
26
  schemas?: string;
27
27
  sipAddresses?: URIAddress[];
28
- title?: string;
28
+ resolved: boolean;
29
29
  };
30
30
  export declare enum GroupType {
31
31
  NORMAL = "NORMAL",
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Contacts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAEjE,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAKD,MAAM,MAAM,OAAO,GAAG;IAIpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,SAAS,EAAE,MAAM,CAAC;IAIlB,WAAW,EAAE,WAAW,CAAC;IAIzB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IAItB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,MAAM,EAAE,MAAM,EAAE,CAAC;IAIjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAI9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAI7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAI9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAI5B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAKD,MAAM,MAAM,YAAY,GAAG;IAIzB,WAAW,EAAE,MAAM,CAAC;IAIpB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,OAAO,EAAE,MAAM,CAAC;IAIhB,SAAS,EAAE,SAAS,CAAC;IAIrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAInB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAqBF,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,aAAa,CAAC;IAcrC,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAYxC,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,eAAe,CAAC,CAAC;IAY5B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAU9D,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAY9D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5D;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/Contacts/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,aAAa,EAAC,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAC,OAAO,EAAE,WAAW,EAAE,UAAU,EAAC,MAAM,iBAAiB,CAAC;AAEjE,oBAAY,WAAW;IACrB,MAAM,WAAW;IACjB,KAAK,UAAU;CAChB;AAKD,MAAM,MAAM,OAAO,GAAG;IAIpB,WAAW,CAAC,EAAE,OAAO,CAAC;IAItB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,eAAe,CAAC,EAAE,MAAM,CAAC;IAIzB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,SAAS,EAAE,MAAM,CAAC;IAIlB,WAAW,EAAE,WAAW,CAAC;IAIzB,UAAU,CAAC,EAAE,MAAM,CAAC;IAIpB,WAAW,CAAC,EAAE,MAAM,CAAC;IAIrB,MAAM,CAAC,EAAE,UAAU,EAAE,CAAC;IAItB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,SAAS,CAAC,EAAE,MAAM,CAAC;IAInB,MAAM,EAAE,MAAM,EAAE,CAAC;IAIjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAI9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAIlB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,YAAY,CAAC,EAAE,WAAW,EAAE,CAAC;IAI7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAI9B,OAAO,CAAC,EAAE,MAAM,CAAC;IAIjB,YAAY,CAAC,EAAE,UAAU,EAAE,CAAC;IAI5B,QAAQ,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,oBAAY,SAAS;IACnB,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAKD,MAAM,MAAM,YAAY,GAAG;IAIzB,WAAW,EAAE,MAAM,CAAC;IAIpB,gBAAgB,EAAE,MAAM,CAAC;IAIzB,OAAO,EAAE,MAAM,CAAC;IAIhB,SAAS,EAAE,SAAS,CAAC;IAIrB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;IAInB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE;QACJ,QAAQ,CAAC,EAAE,OAAO,EAAE,CAAC;QACrB,MAAM,CAAC,EAAE,YAAY,EAAE,CAAC;QACxB,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,KAAK,CAAC,EAAE,YAAY,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAqBF,MAAM,WAAW,SAAS;IACxB,eAAe,EAAE,MAAM,aAAa,CAAC;IAcrC,WAAW,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAYxC,kBAAkB,CAChB,WAAW,EAAE,MAAM,EACnB,gBAAgB,CAAC,EAAE,MAAM,EACzB,SAAS,CAAC,EAAE,SAAS,GACpB,OAAO,CAAC,eAAe,CAAC,CAAC;IAY5B,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAU9D,aAAa,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAY9D,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;CAC5D;AAED,MAAM,MAAM,oBAAoB,GAAG;IACjC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,CAAC"}
package/package.json CHANGED
@@ -38,7 +38,7 @@
38
38
  "dependencies": {
39
39
  "@types/platform": "1.3.4",
40
40
  "@webex/internal-media-core": "2.10.2",
41
- "@webex/media-helpers": "3.4.0-next.2",
41
+ "@webex/media-helpers": "3.4.0-next.3",
42
42
  "async-mutex": "0.4.0",
43
43
  "buffer": "6.0.3",
44
44
  "jest-html-reporters": "3.0.11",
@@ -129,5 +129,5 @@
129
129
  "staticpath": "docs",
130
130
  "noprompt": true
131
131
  },
132
- "version": "3.4.0-next.7"
132
+ "version": "3.4.0-next.9"
133
133
  }