in source/aws-connect-vm-serverless/src/service/connect-agent.service.js [123:172]
_validateAgentUpdate(agentId, update) {
return new Promise((resolve, reject) => {
let {extension, deliverSMSPhoneNumber, deliverSMS, deliverEmail, encryptVoicemail, transcribeVoicemail} = update;
if (!agentId) {
reject(new MissingParameterError("agentId"));
return;
}
if (deliverSMS === true && (deliverSMSPhoneNumber === undefined || deliverSMSPhoneNumber === "")) {
reject(new InvalidParameterError(
"Please provide a phone number for SMS delivery",
"deliverSMSPhoneNumber cannot be null or empty if deliverSMS is true"));
return;
}
if (deliverSMSPhoneNumber) {
let phone = new PhoneNumber(deliverSMSPhoneNumber);
if (!phone.isValid()) {
reject(new GenericError(
"InvalidPhoneNumberError",
"The phone number you've entered is invalid. Please enter a valid phone number and try again.",
`Phone number cannot be validated for ${deliverSMSPhoneNumber}`
));
} else {
update["deliverSMSPhoneNumber"] = phone.getNumber();
}
}
if (update.hasOwnProperty("extension") &&
(update["extension"].length > 5 || Number.isNaN(update["extension"]))) {
reject(new InvalidParameterError("Invalid extension number", "Extension number must be numeric and less than 5 digits."));
return;
}
if (!update.hasOwnProperty("extension") ||
!update.hasOwnProperty("deliverSMS") ||
!update.hasOwnProperty("deliverEmail") ||
!update.hasOwnProperty("transcribeVoicemail") ||
!update.hasOwnProperty("encryptVoicemail")
) {
reject(new MissingParametersError());
return;
}
resolve({
agentId,
update
});
});
}