This is an automated email from the ASF dual-hosted git repository.

bdelacretaz pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-whiteboard.git


The following commit(s) were added to refs/heads/master by this push:
     new 61a9c57  Fix output format to adhere to GraphQL spec
     new 9e45e85  Merge pull request #56 from stefangrimm/output-format-fix
61a9c57 is described below

commit 61a9c57d0f2a825e5fd617500d143e846f0e14b9
Author: Stefan Grimm <[email protected]>
AuthorDate: Tue Apr 28 10:37:39 2020 +0200

    Fix output format to adhere to GraphQL spec
    
    - Use "data" top-level container
    - Correct error handling for query issues
---
 .../scripting/gql/engine/GraphQLScriptEngine.java      |  5 +----
 .../sling/scripting/graphql/it/BasicContentIT.java     |  6 +++---
 .../sling/scripting/graphql/it/GraphQLServletIT.java   | 18 +++++++++---------
 3 files changed, 13 insertions(+), 16 deletions(-)

diff --git 
a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngine.java
 
b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngine.java
index 2a6c07f..297e41b 100644
--- 
a/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngine.java
+++ 
b/graphql-scripting/src/main/java/org/apache/sling/scripting/gql/engine/GraphQLScriptEngine.java
@@ -75,10 +75,7 @@ public class GraphQLScriptEngine extends 
AbstractScriptEngine {
     }
 
     public static void sendJSON(PrintWriter out, ExecutionResult result) 
throws ScriptException {
-        if (!result.getErrors().isEmpty()) {
-            throw new ScriptException(("GraphQL query failed:" + 
result.getErrors()));
-        }
-        final Object data = result.getData();
+        final Object data = result.toSpecification();
         if (data == null) {
             throw new ScriptException("No data");
         }
diff --git 
a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/BasicContentIT.java
 
b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/BasicContentIT.java
index a652340..ea00a31 100644
--- 
a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/BasicContentIT.java
+++ 
b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/BasicContentIT.java
@@ -58,8 +58,8 @@ public class BasicContentIT extends 
GraphQLScriptingTestSupport {
     public void testJsonContent() throws Exception {
         final String path = "/graphql/one";
         final String json = getContent(path + ".json");
-        assertThat(json, hasJsonPath("$.currentResource"));
-        assertThat(json, hasJsonPath("$.currentResource.path", 
equalTo("/content/graphql/one")));
-        assertThat(json, hasJsonPath("$.currentResource.resourceType", 
equalTo("graphql/test/one")));
+        assertThat(json, hasJsonPath("$.data.currentResource"));
+        assertThat(json, hasJsonPath("$.data.currentResource.path", 
equalTo("/content/graphql/one")));
+        assertThat(json, hasJsonPath("$.data.currentResource.resourceType", 
equalTo("graphql/test/one")));
     }
 }
diff --git 
a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLServletIT.java
 
b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLServletIT.java
index 41d8057..62fa9e4 100644
--- 
a/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLServletIT.java
+++ 
b/graphql-scripting/src/test/java/org/apache/sling/scripting/graphql/it/GraphQLServletIT.java
@@ -72,25 +72,25 @@ public class GraphQLServletIT extends 
GraphQLScriptingTestSupport {
     @Test
     public void testGqlExt() throws Exception {
         final String json = getContent("/graphql/two.gql", "query", "{ 
currentResource { resourceType name } }");
-        assertThat(json, hasJsonPath("$.currentResource.resourceType", 
equalTo("graphql/test/two")));
-        assertThat(json, hasJsonPath("$.currentResource.name", 
equalTo("two")));
-        assertThat(json, hasNoJsonPath("$.currentResource.path"));
+        assertThat(json, hasJsonPath("$.data.currentResource.resourceType", 
equalTo("graphql/test/two")));
+        assertThat(json, hasJsonPath("$.data.currentResource.name", 
equalTo("two")));
+        assertThat(json, hasNoJsonPath("$.data.currentResource.path"));
     }
 
     @Test
     public void testGqlExtWithPost() throws Exception {
         final String json = getContentWithPost("/graphql/two.gql", "{ 
currentResource { resourceType name } }", null);
-        assertThat(json, hasJsonPath("$.currentResource.resourceType", 
equalTo("graphql/test/two")));
-        assertThat(json, hasJsonPath("$.currentResource.name", 
equalTo("two")));
-        assertThat(json, hasNoJsonPath("$.currentResource.path"));
+        assertThat(json, hasJsonPath("$.data.currentResource.resourceType", 
equalTo("graphql/test/two")));
+        assertThat(json, hasJsonPath("$.data.currentResource.name", 
equalTo("two")));
+        assertThat(json, hasNoJsonPath("$.data.currentResource.path"));
     }
 
     @Test
     public void testOtherExt() throws Exception {
         final String json = getContent("/graphql/two.testing.otherExt", 
"query", "{ currentResource { path name } }");
-        assertThat(json, hasJsonPath("$.currentResource.path", 
equalTo("/content/graphql/two")));
-        assertThat(json, hasJsonPath("$.currentResource.name", 
equalTo("two")));
-        assertThat(json, hasNoJsonPath("$.currentResource.resourceType"));
+        assertThat(json, hasJsonPath("$.data.currentResource.path", 
equalTo("/content/graphql/two")));
+        assertThat(json, hasJsonPath("$.data.currentResource.name", 
equalTo("two")));
+        assertThat(json, hasNoJsonPath("$.data.currentResource.resourceType"));
         executeRequest("GET", "/graphql/two.otherExt", null, 404);
     }
 

Reply via email to