_validateAgentUpdate()

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
            });
        });
    }