WIP: WebClient
[facebook-errors] / src / main / java / de / juplo / facebook / errors / GraphApiException.java
index b82a05b..a696f6e 100644 (file)
@@ -8,13 +8,11 @@ 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.core.io.buffer.DataBuffer;
 import org.springframework.http.HttpHeaders;
 import org.springframework.http.HttpStatus;
-import org.springframework.http.ReactiveHttpInputMessage;
-import org.springframework.web.reactive.function.BodyExtractor.Context;
 import org.springframework.web.reactive.function.client.ClientResponse;
 
 
@@ -47,15 +45,15 @@ public class GraphApiException extends RuntimeException
 
 
 
-  public static GraphApiException create(ClientResponse response)
+  public static Supplier<GraphApiException> create(ClientResponse response)
   {
+    HttpStatus status = response.statusCode();
+    HttpHeaders headers = response.headers().asHttpHeaders();
     return
-        response
-            .body((ReactiveHttpInputMessage message, Context context) ->
-                message
-                    .getBody()
-                    .map(buffer -> buffer.asInputStream()))
-            .flatMap(is -> create(response.statusCode(), message.getHeaders(), is));
+        () -> response
+            .bodyToMono(InputStream.class)
+            .map(is -> create(status , headers, is))
+            .block();
   }
 
   public static GraphApiException create(