in source/aws-connect-vm-serverless/src/service/notification.service.js [51:86]
deliver(globalSettings, voicemail, connectAgent) {
let options = this.getTranscribeAndEncryptionSettings(globalSettings, voicemail);
let deliveryOptions = connectAgent.agent.deliveryOptions;
let shouldSendEmail = deliveryOptions.email;
let shouldSendSMS = deliveryOptions.sms.enabled;
let contactEmail = connectAgent.connectUser.email || connectAgent.connectUser.username; // For SSO instances
let agentSMSPhoneNumber = deliveryOptions.sms.phoneNumber;
let deliveryEmail = globalSettings.deliveryEmail;
if (!deliveryEmail) {
throw "You must provide a delivery email";
}
if (!shouldSendEmail && !shouldSendSMS) {
console.log("NOT sending email or sms");
return Promise.resolve({message: "Not sending Email or SNS"});
} else {
if (shouldSendEmail && shouldSendSMS) {
console.log(`Should Send BOTH email and SMS`);
return this.getDeliveryContents(options, voicemail).then(contents => {
return this.sendTextMessage(voicemail, agentSMSPhoneNumber, contents)
.then(() => this.sendMail(voicemail, deliveryEmail, contactEmail, contents));
});
} else if (shouldSendSMS && agentSMSPhoneNumber) {
console.log("Send ONLY SMS");
return Promise.resolve();
} else if (deliveryOptions.email) {
console.log("Send ONLY Email");
return this.getDeliveryContents(options, voicemail).then(contents => {
return this.sendMail(voicemail, deliveryEmail, contactEmail, contents);
});
} else {
return Promise.resolve({message: "Undeliverable"});
}
}
}