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