import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.util.function.Supplier;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.http.HttpHeaders;
import org.springframework.http.HttpStatus;
-import org.springframework.http.ReactiveHttpInputMessage;
-import org.springframework.web.reactive.function.BodyExtractor;
-import org.springframework.web.reactive.function.BodyExtractor.Context;
import org.springframework.web.reactive.function.client.ClientResponse;
-import reactor.core.publisher.Mono;
- public static Mono<GraphApiException> create(ClientResponse response)
+ public static Supplier<GraphApiException> create(ClientResponse response)
{
HttpStatus status = response.statusCode();
HttpHeaders headers = response.headers().asHttpHeaders();
return
- response
+ () -> response
.bodyToMono(InputStream.class)
- .map(is -> create(status , headers, is));
+ .map(is -> create(status , headers, is))
+ .block();
}
public static GraphApiException create(
.filter((request, next) -> next.exchange(request).flatMap(response ->
{
List<String> headerValues = response.headers().header("Foo");
- return headerValues.isEmpty() ? Mono.error(GraphApiException.create(response).block()) :
+ return headerValues.isEmpty() ? Mono.error(GraphApiException.create(response)) :
Mono.just(response);
}))
.build();