import java.io.InputStream;
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;
}
+
+ public static GraphApiException create(ClientResponse response)
+ {
+ return
+ response
+ .body((ReactiveHttpInputMessage message, Context context) ->
+ message
+ .getBody()
+ .map(buffer -> buffer.asInputStream()))
+ .flatMap(is -> create(response.statusCode(), message.getHeaders(), is));
+ }
+
public static GraphApiException create(
HttpStatus status,
HttpHeaders headers,
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:
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;
}
}