X-Git-Url: https://juplo.de/gitweb/?a=blobdiff_plain;f=src%2Fmain%2Fjava%2Fde%2Fjuplo%2Ffacebook%2Ferrors%2FGraphApiException.java;h=ce3836ca83e0127eaa6d17f223b40acb7f6ff749;hb=8b80b12f54d43c1f5cfb0d5c3255a0197a9f1467;hp=a696f6eb303647daee7fbc303347ddc984c44636;hpb=904813dd6f8362f2d7aae87bad164108b3a42004;p=facebook-errors diff --git a/src/main/java/de/juplo/facebook/errors/GraphApiException.java b/src/main/java/de/juplo/facebook/errors/GraphApiException.java index a696f6e..ce3836c 100644 --- a/src/main/java/de/juplo/facebook/errors/GraphApiException.java +++ b/src/main/java/de/juplo/facebook/errors/GraphApiException.java @@ -8,12 +8,14 @@ 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.DataBufferUtils; import org.springframework.http.HttpHeaders; import org.springframework.http.HttpStatus; +import org.springframework.web.reactive.function.BodyExtractors; import org.springframework.web.reactive.function.client.ClientResponse; +import reactor.core.publisher.Mono; @@ -45,15 +47,12 @@ public class GraphApiException extends RuntimeException - public static Supplier create(ClientResponse response) + public static Mono create(ClientResponse response) { - HttpStatus status = response.statusCode(); - HttpHeaders headers = response.headers().asHttpHeaders(); return - () -> response - .bodyToMono(InputStream.class) - .map(is -> create(status , headers, is)) - .block(); + response + .createException() + .map(we -> create(response.statusCode(), response.headers().asHttpHeaders(), we.getResponseBodyAsByteArray())); } public static GraphApiException create(