WIP: WebClient
[facebook-errors] / src / main / java / de / juplo / facebook / errors / GraphApiException.java
index a781c3b..3ebc64f 100644 (file)
@@ -12,6 +12,11 @@ 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;
 
 
 
@@ -42,6 +47,17 @@ public class GraphApiException extends RuntimeException
   }
 
 
+
+  public static Mono<GraphApiException> create(ClientResponse response)
+  {
+    HttpStatus status = response.statusCode();
+    HttpHeaders headers = response.headers().asHttpHeaders();
+    return
+        response
+            .bodyToMono(InputStream.class)
+            .map(is -> create(status , headers, is));
+  }
+
   public static GraphApiException create(
       HttpStatus status,
       HttpHeaders headers,
@@ -91,7 +107,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: