From 6040dce0c1051849177dd9871f7b042cc2351924 Mon Sep 17 00:00:00 2001 From: Brian Clozel Date: Wed, 16 Sep 2020 16:14:15 +0200 Subject: [PATCH] Update request/response GraphQL classes This commit decouples the HTTP layer from the expected request and response messages expected with GraphQL. --- .../graphql/GraphQLHttpRequest.java | 46 ---------------- .../graphql/GraphQLHttpResponse.java | 40 -------------- .../graphql/GraphQLRequestBody.java | 53 +++++++++++++++++++ .../graphql/GraphQLResponseBody.java | 36 +++++++++++++ 4 files changed, 89 insertions(+), 86 deletions(-) delete mode 100644 spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpRequest.java delete mode 100644 spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpResponse.java create mode 100644 spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLRequestBody.java create mode 100644 spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLResponseBody.java diff --git a/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpRequest.java b/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpRequest.java deleted file mode 100644 index df19cf75..00000000 --- a/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpRequest.java +++ /dev/null @@ -1,46 +0,0 @@ -package org.springframework.graphql; - -import org.springframework.http.HttpHeaders; -import org.springframework.util.MultiValueMap; - -import java.util.Map; - -public class GraphQLHttpRequest { - private final String query; - private final String operationName; - private final Map variables; - private final HttpHeaders httpHeaders; - private final MultiValueMap requestParams; - - public GraphQLHttpRequest(String query, - String operationName, - Map variables, - HttpHeaders httpHeaders, - MultiValueMap requestParams) { - this.query = query; - this.operationName = operationName; - this.variables = variables; - this.httpHeaders = httpHeaders; - this.requestParams = requestParams; - } - - public String getQuery() { - return query; - } - - public String getOperationName() { - return operationName; - } - - public Map getVariables() { - return variables; - } - - public HttpHeaders getHttpHeaders() { - return httpHeaders; - } - - public MultiValueMap getRequestParams() { - return requestParams; - } -} diff --git a/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpResponse.java b/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpResponse.java deleted file mode 100644 index dc1a1f64..00000000 --- a/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLHttpResponse.java +++ /dev/null @@ -1,40 +0,0 @@ -package org.springframework.graphql; - -import org.springframework.http.HttpHeaders; - -import java.util.List; -import java.util.Map; - -public class GraphQLHttpResponse { - - private final Object data; - private final List> errors; - private final Map extensions; - private final HttpHeaders httpHeaders; - - public GraphQLHttpResponse(Object data, - List> errors, - Map extensions, - HttpHeaders httpHeaders) { - this.data = data; - this.errors = errors; - this.extensions = extensions; - this.httpHeaders = httpHeaders; - } - - public Object getData() { - return data; - } - - public List> getErrors() { - return errors; - } - - public Map getExtensions() { - return extensions; - } - - public HttpHeaders getHttpHeaders() { - return httpHeaders; - } -} diff --git a/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLRequestBody.java b/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLRequestBody.java new file mode 100644 index 00000000..37d58185 --- /dev/null +++ b/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLRequestBody.java @@ -0,0 +1,53 @@ +package org.springframework.graphql; + +import java.util.Collections; +import java.util.Map; + +import org.springframework.lang.Nullable; + +/** + * @author Andreas Marek + * @author Brian Clozel + */ +public class GraphQLRequestBody { + + private String query; + + private String operationName; + + private Map variables = Collections.emptyMap(); + + public GraphQLRequestBody(String query, String operationName, Map variables) { + this.query = query; + this.operationName = operationName; + this.variables = variables; + } + + public GraphQLRequestBody() { + } + + @Nullable + public String getQuery() { + return this.query; + } + + public void setQuery(String query) { + this.query = query; + } + + public String getOperationName() { + return this.operationName; + } + + public void setOperationName(String operationName) { + this.operationName = operationName; + } + + public Map getVariables() { + return this.variables; + } + + public void setVariables(Map variables) { + this.variables = variables; + } +} diff --git a/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLResponseBody.java b/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLResponseBody.java new file mode 100644 index 00000000..679e78f5 --- /dev/null +++ b/spring-graphql-web/src/main/java/org/springframework/graphql/GraphQLResponseBody.java @@ -0,0 +1,36 @@ +package org.springframework.graphql; + +import java.util.Collections; +import java.util.List; +import java.util.Map; + +public class GraphQLResponseBody { + + private T data; + + private List> errors = Collections.emptyList(); + + public GraphQLResponseBody() { + } + + public GraphQLResponseBody(T data) { + this.data = data; + this.errors = errors; + } + + public T getData() { + return this.data; + } + + public void setData(T data) { + this.data = data; + } + + public List> getErrors() { + return this.errors; + } + + public void setErrors(List> errors) { + this.errors = errors; + } +}