in aws-iotwireless-wirelessgateway/src/main/java/software/amazon/iotwireless/wirelessgateway/UpdateHandler.java [16:45]
protected ProgressEvent<ResourceModel, CallbackContext> handleRequest(
final AmazonWebServicesClientProxy proxy,
final ResourceHandlerRequest<ResourceModel> request,
final CallbackContext callbackContext,
final ProxyClient<IotWirelessClient> proxyClient,
final Logger logger) {
final ResourceModel model = request.getDesiredResourceState();
return ProgressEvent.progress(request.getDesiredResourceState(), callbackContext)
.then(progress -> {
if (model.getThingArn() != null) {
return proxy.initiate("AWS-IoTWireless-WirelessGateway::AssociateThing", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::associateWirelessGatewayWithThing)
.makeServiceCall(this::associateThing)
.progress();
}
return progress;
})
.then(progress -> {
if (model.getName() != null || model.getDescription() != null || model.getId() != null) {
return proxy.initiate("AWS-IoTWireless-WirelessGateway::Update", proxyClient, progress.getResourceModel(), progress.getCallbackContext())
.translateToServiceRequest(Translator::translateToFirstUpdateRequest)
.makeServiceCall(this::updateResource)
.progress();
}
return progress;
})
.then(progress -> ProgressEvent.defaultSuccessHandler(Translator.setModel(model)));
}