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=636b3d2de0e0b1c73e0cdae5e2967b6e72ff7a7e;hpb=8fc05fb4992fe6e34b39d10e9a3b053f42dea893;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 636b3d2..ce3836c 100644 --- a/src/main/java/de/juplo/facebook/errors/GraphApiException.java +++ b/src/main/java/de/juplo/facebook/errors/GraphApiException.java @@ -10,8 +10,12 @@ import java.io.IOException; import java.io.InputStream; 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; @@ -42,6 +46,15 @@ public class GraphApiException extends RuntimeException } + + public static Mono create(ClientResponse response) + { + return + response + .createException() + .map(we -> create(response.statusCode(), response.headers().asHttpHeaders(), we.getResponseBodyAsByteArray())); + } + public static GraphApiException create( HttpStatus status, HttpHeaders headers, @@ -91,7 +104,7 @@ public class GraphApiException extends RuntimeException case 104: return new AccessTokenRequiredException(status, headers, error); case 190: return new AccessTokenExpiredException(status, headers, error); // 200..299: permission errors - case 200: + case 200: return new ApplicationNotAuthorizedByUserException(status, headers, error); case 201: case 202: case 203: @@ -210,8 +223,9 @@ public class GraphApiException extends RuntimeException case 2200: return new CallbackVerificationFailedException(status, headers, error); default: - LOG.info("unmapped error: {}", error); - return new UnmappedErrorException(status, headers, error); + GraphApiException e = new UnmappedErrorException(status, headers, error); + LOG.info("unmapped error: {}", e.toString()); + return e; } }