serviceInstanceId, bindingId)) .doOnError(e -> logger.debug(e.getMessage(), e))) .flatMap(response -> Mono.just(response.getState().equals(OperationState.SUCCEEDED) && response.isDeleteOperation()) .flatMap(isSuccessfulDelete -> Mono.just(new ResponseEntity<>(response, isSuccessfulDelete ? HttpStatus.GONE : HttpStatus.OK))));
boolean isSuccessfulDelete = response.getState().equals(OperationState.SUCCEEDED) && response.isDeleteOperation(); return new ResponseEntity<>(response, isSuccessfulDelete ? HttpStatus.GONE : HttpStatus.OK); });
@GetMapping(value = { "/{platformInstanceId}/v2/service_instances/{instanceId}/last_operation", "/v2/service_instances/{instanceId}/last_operation" }) public ResponseEntity<GetLastServiceOperationResponse> getServiceInstanceLastOperation( @PathVariable Map<String, String> pathVariables, @PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId, @RequestParam(value = ServiceBrokerRequest.SERVICE_ID_PARAMETER, required = false) String serviceDefinitionId, @RequestParam(value = ServiceBrokerRequest.PLAN_ID_PARAMETER, required = false) String planId, @RequestParam(value = "operation", required = false) String operation, @RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { GetLastServiceOperationRequest request = GetLastServiceOperationRequest.builder() .serviceDefinitionId(serviceDefinitionId) .serviceInstanceId(serviceInstanceId) .planId(planId) .operation(operation) .platformInstanceId(pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE)) .apiInfoLocation(apiInfoLocation) .originatingIdentity(parseOriginatingIdentity(originatingIdentityString)) .build(); logger.debug("Getting service instance last operation: request={}", request); GetLastServiceOperationResponse response = service.getLastOperation(request); logger.debug("Getting service instance last operation succeeded: serviceInstanceId={}, response={}", serviceInstanceId, response); boolean isSuccessfulDelete = response.getState().equals(OperationState.SUCCEEDED) && response.isDeleteOperation(); return new ResponseEntity<>(response, isSuccessfulDelete ? HttpStatus.GONE : HttpStatus.OK); }
@GetMapping(value = { "/{platformInstanceId}/v2/service_instances/{instanceId}/service_bindings/{bindingId}/last_operation", "/v2/service_instances/{instanceId}/service_bindings/{bindingId}/last_operation" }) public ResponseEntity<GetLastServiceBindingOperationResponse> getServiceInstanceBindingLastOperation( @PathVariable Map<String, String> pathVariables, @PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId, @PathVariable(ServiceBrokerRequest.BINDING_ID_PATH_VARIABLE) String bindingId, @RequestParam(value = ServiceBrokerRequest.SERVICE_ID_PARAMETER, required = false) String serviceDefinitionId, @RequestParam(value = ServiceBrokerRequest.PLAN_ID_PARAMETER, required = false) String planId, @RequestParam(value = "operation", required = false) String operation, @RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { GetLastServiceBindingOperationRequest request = GetLastServiceBindingOperationRequest.builder() .serviceDefinitionId(serviceDefinitionId) .serviceInstanceId(serviceInstanceId) .bindingId(bindingId) .planId(planId) .operation(operation) .platformInstanceId(pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE)) .apiInfoLocation(apiInfoLocation) .originatingIdentity(parseOriginatingIdentity(originatingIdentityString)) .build(); logger.debug("Getting service instance binding last operation: request={}", request); GetLastServiceBindingOperationResponse response = service.getLastOperation(request); logger.debug("Getting service instance binding last operation succeeded: serviceInstanceId={}, bindingId={}, response={}", serviceInstanceId, bindingId, response); boolean isSuccessfulDelete = response.getState().equals(OperationState.SUCCEEDED) && response.isDeleteOperation(); return new ResponseEntity<>(response, isSuccessfulDelete ? HttpStatus.GONE : HttpStatus.OK); }