public ProgressEvent handleRequest()

in datacatalog/src/main/java/software/amazon/athena/datacatalog/UpdateHandler.java [38:63]


    public ProgressEvent<ResourceModel, CallbackContext> handleRequest(
        final AmazonWebServicesClientProxy proxy,
        final ResourceHandlerRequest<ResourceModel> request,
        final CallbackContext callbackContext,
        ProxyClient<AthenaClient> athenaProxyClient,
        final Logger logger) {
        this.logger = logger;

        final ResourceModel resourceModel = request.getDesiredResourceState();

        return ProgressEvent.progress(resourceModel, callbackContext)
            .then(progressEvent -> {
                ProgressEvent<ResourceModel, CallbackContext> readprogress =
                    readHandler.handleRequest(proxy, request, callbackContext, proxy.newProxy(this::getClient), logger);
                if (readprogress.isFailed()) {
                    readprogress.setResourceModel(null);
                }
                return readprogress;
            })
            .onSuccess(p -> proxy.initiate("athena::updateDataCatalog", athenaProxyClient, resourceModel, callbackContext)
                .translateToServiceRequest(Translator::updateDataCatalogRequest)
                .makeServiceCall(this::updateDataCatalog)
                .progress()
                .then(progress -> updateTags(request, athenaProxyClient, request.getPreviousResourceState(),
                    request.getDesiredResourceState())));
    }