refactoring

This commit is contained in:
Andreas Marek
2020-09-15 03:32:48 +10:00
parent 7bc8cea8ed
commit 5741e3f4bc
2 changed files with 9 additions and 8 deletions

View File

@@ -34,18 +34,19 @@ public class GraphQLHandler {
return executionInput
.flatMap(this::execute)
.flatMap(result -> interceptor.postHandle(result, graphQLHttpRequest.getHttpHeaders(), requestParams))
.flatMap(result -> toResponseBody(result, graphQLHttpRequest.getHttpHeaders(), requestParams));
.flatMap(result -> toResponseBody(result, graphQLHttpRequest));
}
private Mono<GraphQLHttpResponse> toResponseBody(ExecutionResult executionResult, HttpHeaders httpHeaders, MultiValueMap<String, String> requestParams) {
private Mono<GraphQLHttpResponse> toResponseBody(ExecutionResult executionResult, GraphQLHttpRequest graphQLHttpRequest) {
Map<String, Object> responseBodyRaw = executionResult.toSpecification();
Object data = responseBodyRaw.get("data");
List<Map<String, Object>> errors = (List<Map<String, Object>>) responseBodyRaw.get("errors");
Map<String, Object> extensions = (Map<String, Object>) responseBodyRaw.get("extensions");
GraphQLHttpResponse responseBody = new GraphQLHttpResponse(data,
errors,
extensions, httpHeaders);
Mono<GraphQLHttpResponse> graphQLResponseBodyMono = interceptor.customizeResponseBody(responseBody, executionResult, httpHeaders, requestParams);
extensions,
new HttpHeaders());
Mono<GraphQLHttpResponse> graphQLResponseBodyMono = interceptor.customizeGraphQLHttpResponse(responseBody, executionResult, graphQLHttpRequest);
return graphQLResponseBodyMono;
}

View File

@@ -20,10 +20,10 @@ public interface GraphQLInterceptor {
return Mono.just(result);
}
default Mono<GraphQLHttpResponse> customizeResponseBody(GraphQLHttpResponse graphQLHttpResponse,
ExecutionResult executionResult,
HttpHeaders httpHeader,
MultiValueMap<String, String> requestParams) {
default Mono<GraphQLHttpResponse> customizeGraphQLHttpResponse(GraphQLHttpResponse graphQLHttpResponse,
ExecutionResult executionResult,
GraphQLHttpRequest graphQLHttpRequest) {
return Mono.just(graphQLHttpResponse);
}