WIP: WebClient
authorKai Moritz <kai@jupl.de>
Thu, 21 Nov 2019 14:31:39 +0000 (15:31 +0100)
committerKai Moritz <kai@jupl.de>
Thu, 21 Nov 2019 14:31:39 +0000 (15:31 +0100)
src/main/java/de/juplo/facebook/errors/GraphApiException.java
src/main/java/de/juplo/facebook/errors/GraphApiExchangeFilterFunction.java
src/test/java/de/juplo/facebook/errors/GraphApiExchangeFilterFunctionIntegrationTest.java

index 3ebc64f..a696f6e 100644 (file)
@@ -8,15 +8,12 @@ import com.fasterxml.jackson.databind.SerializationFeature;
 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;
 
 
 
@@ -48,14 +45,15 @@ public class GraphApiException extends RuntimeException
 
 
 
-  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(
index 6642e38..53bdd0b 100644 (file)
@@ -35,7 +35,7 @@ public class GraphApiExchangeFilterFunction implements ExchangeFilterFunction
             {
               return
                   HttpStatus.Series.CLIENT_ERROR.equals(response.statusCode().series())
-                      ? Mono.error(GraphApiException.create(response).block())
+                      ? Mono.error(GraphApiException.create(response))
                       : Mono.just(response);
             });
   }
index b90e057..c468590 100644 (file)
@@ -103,7 +103,7 @@ public class GraphApiExchangeFilterFunctionIntegrationTest
             .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();