1 package de.juplo.facebook.errors;
4 import org.springframework.http.HttpStatus;
5 import org.springframework.web.reactive.function.client.ClientRequest;
6 import org.springframework.web.reactive.function.client.ClientResponse;
7 import org.springframework.web.reactive.function.client.ExchangeFilterFunction;
8 import org.springframework.web.reactive.function.client.ExchangeFunction;
9 import reactor.core.publisher.Mono;
13 * An {@link ExchangeFilterFunction}
16 public class GraphApiExchangeFilterFunction implements ExchangeFilterFunction
19 public Mono<ClientResponse> filter(ClientRequest request, ExchangeFunction next)
27 HttpStatus.Series.CLIENT_ERROR.equals(response.statusCode().series())
29 .bodyToMono(String.class)
30 .map(errorBody -> GraphApiException.create(
31 response.statusCode(),
32 response.headers().asHttpHeaders(),
33 errorBody.getBytes()))
34 .flatMap(e -> Mono.error(e))
35 : Mono.just(response);