WIP: WebClient
[facebook-errors] / src / main / java / de / juplo / facebook / errors / GraphApiException.java
index 5ec30fa..ce3836c 100644 (file)
@@ -10,12 +10,12 @@ import java.io.IOException;
 import java.io.InputStream;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.springframework.core.io.buffer.DataBuffer;
+import org.springframework.core.io.buffer.DataBufferUtils;
 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.BodyExtractors;
 import org.springframework.web.reactive.function.client.ClientResponse;
+import reactor.core.publisher.Mono;
 
 
 
@@ -47,15 +47,12 @@ public class GraphApiException extends RuntimeException
 
 
 
-  public static GraphApiException create(ClientResponse response)
+  public static Mono<GraphApiException> create(ClientResponse response)
   {
     return
-        response.body((ReactiveHttpInputMessage message, Context context) ->
-        {
-          DataBuffer buffer = message.getBody().blockFirst();
-          InputStream is = message.getBody().blockFirst().asInputStream();
-          return create(response.statusCode(), message.getHeaders(), is);
-        });
+        response
+            .createException()
+            .map(we -> create(response.statusCode(), response.headers().asHttpHeaders(), we.getResponseBodyAsByteArray()));
   }
 
   public static GraphApiException create(