/** * Construct a {@link GetServiceInstanceRequest} from the provided values. * * @return the newly constructed {@literal GetServiceInstanceRequest} */ public GetServiceInstanceRequest build() { return new GetServiceInstanceRequest(serviceInstanceId, platformInstanceId, apiInfoLocation, originatingIdentity); } }
@Test public void requestWithDefaultsIsBuilt() { GetServiceInstanceRequest request = GetServiceInstanceRequest.builder() .build(); assertThat(request.getServiceInstanceId()).isNull(); assertThat(request.getApiInfoLocation()).isNull(); assertThat(request.getPlatformInstanceId()).isNull(); assertThat(request.getOriginatingIdentity()).isNull(); }
@GetMapping(value = { "/{platformInstanceId}/v2/service_instances/{instanceId}", "/v2/service_instances/{instanceId}" }) public Mono<ResponseEntity<GetServiceInstanceResponse>> getServiceInstance( @PathVariable Map<String, String> pathVariables, @PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId, @RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { return Mono.just(GetServiceInstanceRequest.builder() .serviceInstanceId(serviceInstanceId) .platformInstanceId(pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE)) .apiInfoLocation(apiInfoLocation) .originatingIdentity(parseOriginatingIdentity(originatingIdentityString)) .build()) .flatMap(request -> service.getServiceInstance(request) .doOnRequest(v -> logger.debug("Getting service instance: request={}", request)) .doOnSuccess(response -> logger.debug("Getting service instance succeeded: serviceInstanceId={}, response={}", serviceInstanceId, response))) .map(response -> new ResponseEntity<>(response, HttpStatus.OK)) .switchIfEmpty(Mono.just(new ResponseEntity<>(HttpStatus.OK))); }
@Override public Mono<GetServiceInstanceResponse> getServiceInstance(GetServiceInstanceRequest request) { String serviceInstanceId = request.getServiceInstanceId(); // // retrieve the details of the specified service instance // String dashboardUrl = new String(/* retrieve dashboard URL */); GetServiceInstanceResponse response = GetServiceInstanceResponse.builder() .dashboardUrl(dashboardUrl) .build(); return Mono.just(response); }
@Test public void requestWithAllValuesIsBuilt() { Context originatingIdentity = PlatformContext.builder() .platform("test-platform") .build(); GetServiceInstanceRequest request = GetServiceInstanceRequest.builder() .serviceInstanceId("service-instance-id") .platformInstanceId("platform-instance-id") .apiInfoLocation("https://api.example.com") .originatingIdentity(originatingIdentity) .build(); assertThat(request.getServiceInstanceId()).isEqualTo("service-instance-id"); assertThat(request.getPlatformInstanceId()).isEqualTo("platform-instance-id"); assertThat(request.getApiInfoLocation()).isEqualTo("https://api.example.com"); assertThat(request.getOriginatingIdentity()).isEqualTo(originatingIdentity); }
@GetMapping(value = { "/{platformInstanceId}/v2/service_instances/{instanceId}", "/v2/service_instances/{instanceId}" }) public ResponseEntity<GetServiceInstanceResponse> getServiceInstance( @PathVariable Map<String, String> pathVariables, @PathVariable(ServiceBrokerRequest.INSTANCE_ID_PATH_VARIABLE) String serviceInstanceId, @RequestHeader(value = ServiceBrokerRequest.API_INFO_LOCATION_HEADER, required = false) String apiInfoLocation, @RequestHeader(value = ServiceBrokerRequest.ORIGINATING_IDENTITY_HEADER, required = false) String originatingIdentityString) { GetServiceInstanceRequest request = GetServiceInstanceRequest.builder() .serviceInstanceId(serviceInstanceId) .platformInstanceId(pathVariables.get(ServiceBrokerRequest.PLATFORM_INSTANCE_ID_VARIABLE)) .apiInfoLocation(apiInfoLocation) .originatingIdentity(parseOriginatingIdentity(originatingIdentityString)) .build(); logger.debug("Getting service instance: request={}", request); GetServiceInstanceResponse response = service.getServiceInstance(request); logger.debug("Getting service instance succeeded: serviceInstanceId={}, response={}", serviceInstanceId, response); return new ResponseEntity<>(response, HttpStatus.OK); }
@Test public void getServiceInstanceParametersAreMappedToRequest() { GetServiceInstanceRequest expectedRequest = GetServiceInstanceRequest.builder() .serviceInstanceId("service-instance-id") .platformInstanceId("platform-instance-id") .apiInfoLocation("api-info-location") .originatingIdentity(identityContext) .build(); ServiceInstanceController controller = createControllerUnderTest(expectedRequest); controller.getServiceInstance(pathVariables, "service-instance-id", "api-info-location", encodeOriginatingIdentity(identityContext)) .block(); }
/** * Construct a {@link GetServiceInstanceRequest} from the provided values. * * @return the newly constructed {@literal GetServiceInstanceRequest} */ public GetServiceInstanceRequest build() { return new GetServiceInstanceRequest(serviceInstanceId, platformInstanceId, apiInfoLocation, originatingIdentity); } }