private ProgressEvent updateUserPhoneConfig()

in aws-connect-user/src/main/java/software/amazon/connect/user/UpdateHandler.java [113:141]


    private ProgressEvent<ResourceModel, CallbackContext> updateUserPhoneConfig(final AmazonWebServicesClientProxy proxy,
                                                                                final ProxyClient<ConnectClient> proxyClient,
                                                                                final ResourceModel desiredStateModel,
                                                                                final ResourceModel previousStateModel,
                                                                                final ProgressEvent<ResourceModel, CallbackContext> progress,
                                                                                final CallbackContext context,
                                                                                final Logger logger) {
        requireNotNull(desiredStateModel.getPhoneConfig() , USER_PHONE_CONFIG);

        final int desiredAfterContactWorkTimeLimit = desiredStateModel.getPhoneConfig().getAfterContactWorkTimeLimit() == null ? 0 : desiredStateModel.getPhoneConfig().getAfterContactWorkTimeLimit();
        final int previousAfterContactWorkTimeLimit = previousStateModel.getPhoneConfig().getAfterContactWorkTimeLimit() == null ? 0 : previousStateModel.getPhoneConfig().getAfterContactWorkTimeLimit();

        final boolean afterContactWorkTimeLimit = desiredAfterContactWorkTimeLimit != previousAfterContactWorkTimeLimit;
        final boolean autoAccept = desiredStateModel.getPhoneConfig().getAutoAccept() != previousStateModel.getPhoneConfig().getAutoAccept();
        final boolean deskPhoneNumber = !StringUtils.equals(desiredStateModel.getPhoneConfig().getDeskPhoneNumber(), previousStateModel.getPhoneConfig().getDeskPhoneNumber());
        final boolean phoneType = !StringUtils.equals(desiredStateModel.getPhoneConfig().getPhoneType(), previousStateModel.getPhoneConfig().getPhoneType());
        if (afterContactWorkTimeLimit || autoAccept || deskPhoneNumber || phoneType) {
            logger.log(String.format("Calling UpdateUserPhoneConfig API for user:%s", desiredStateModel.getUserArn()));
            return proxy.initiate("connect::updateUserPhoneConfig", proxyClient, desiredStateModel, context)
                    .translateToServiceRequest(UpdateHandler::translateToUpdateUserPhoneConfigRequest)
                    .makeServiceCall((req, clientProxy) -> invoke(req, clientProxy, clientProxy.client()::updateUserPhoneConfig, logger))
                    .progress();

        } else {
            logger.log(String.format("User afterContactWorkTimeLimit, autoAccept, deskPhoneNumber and phoneType fields are unchanged in the update operation, " +
                    "skipping updateUserPhoneConfig API call for user:%s", desiredStateModel.getUserArn()));
            return progress;
        }
    }