protected ProgressEvent handleRequest()

in aws-amplifyuibuilder-theme/src/main/java/software/amazon/amplifyuibuilder/theme/UpdateHandler.java [15:44]


    protected ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        final ProxyClient<AmplifyUiBuilderClient> proxyClient,
        final Logger logger) {

        this.logger = logger;
        ResourceModel model = request.getDesiredResourceState();

        // To pass contract test: contract_update_without_create
        if (model.getId() == null || model.getId().equals("")) {
            throw new CfnNotFoundException(ResourceModel.TYPE_NAME, model.getId());
        }

        return ProgressEvent.progress(model, callbackContext)
            .then(progress ->
                proxy.initiate("AWS-AmplifyUIBuilder-Theme::Update", proxyClient, model, progress.getCallbackContext())
                    .translateToServiceRequest(Translator::translateToUpdateRequest)
                    .makeServiceCall((updateThemeRequest, proxyInvocation) -> (UpdateThemeResponse) ClientWrapper.execute(
                        proxy,
                        updateThemeRequest,
                        proxyInvocation.client()::updateTheme,
                        ResourceModel.TYPE_NAME,
                        model.getId(),
                        logger
                    ))
                    .progress())
            .then(progress -> new ReadHandler().handleRequest(proxy, request, callbackContext, proxyClient, logger));
    }