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

danhaywood pushed a commit to branch CAUSEWAY-3676
in repository https://gitbox.apache.org/repos/asf/causeway.git


The following commit(s) were added to refs/heads/CAUSEWAY-3676 by this push:
     new 106c7aa311 CAUSEWAY-3676: fleshing out GqlvServiceStructure (5)
106c7aa311 is described below

commit 106c7aa311eac61577a03bbc164794814bfa4b6b
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 17:08:14 2024 +0000

    CAUSEWAY-3676: fleshing out GqlvServiceStructure (5)
---
 .../graphql/viewer/source/GqlvServiceStructure.java    | 10 ++++------
 .../graphql/viewer/source/QueryFieldFactory.java       | 18 ++++++++----------
 2 files changed, 12 insertions(+), 16 deletions(-)

diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
index 5f1bce25c5..66ce56826c 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceStructure.java
@@ -97,13 +97,12 @@ public class GqlvServiceStructure {
     void addAction(
             final ObjectAction objectAction) {
 
-        val serviceAsGraphQlType = getGraphQlTypeBuilder();
-
         String fieldName = objectAction.getId();
 
         GraphQLFieldDefinition.Builder builder = newFieldDefinition()
                 .name(fieldName)
                 .type((GraphQLOutputType) 
TypeMapper.typeForObjectAction(objectAction));
+
         if (objectAction.getParameters().isNotEmpty()) {
             builder.arguments(objectAction.getParameters().stream()
                     .map(objectActionParameter -> GraphQLArgument.newArgument()
@@ -112,14 +111,13 @@ public class GqlvServiceStructure {
                             .build())
                     .collect(Collectors.toList()));
         }
-        serviceAsGraphQlType
-                .field(builder
-                        .build());
+        getGraphQlTypeBuilder().field(builder.build());
     }
 
     void addBehaviour(
             final ObjectAction objectAction,
-            final GraphQLCodeRegistry.Builder codeRegistryBuilder, 
QueryFieldFactory queryFieldFactory) {
+            final GraphQLCodeRegistry.Builder codeRegistryBuilder
+    ) {
 
         final GraphQLObjectType graphQLObjectType = getGqlObjectType();
 
diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
index 3dd52de77c..273b182b06 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/QueryFieldFactory.java
@@ -79,22 +79,20 @@ public class QueryFieldFactory {
 
             val serviceAsGraphQlType = 
gqlvServiceStructure.getGraphQlTypeBuilder();
 
-            objectActionList
-            .forEach(gqlvServiceStructure::addAction);
+            objectActionList.forEach(gqlvServiceStructure::addAction);
 
-            objectActionList
-            .forEach(objectAction -> {
-                gqlvServiceStructure.addBehaviour(objectAction, 
codeRegistryBuilder, this);
-            });
+            objectActionList.forEach(objectAction -> 
gqlvServiceStructure.addBehaviour(objectAction, codeRegistryBuilder));
 
             gqlvServiceStructure.addTypeToTopLevelQuery();
 
+            String fieldName = newFieldDefinition()
+                    .name(_LTN.sanitized(serviceSpec))
+                    .type(serviceAsGraphQlType)
+                    .build()
+                    .getName();
             codeRegistryBuilder
             .dataFetcher(
-                    FieldCoordinates.coordinates("Query", newFieldDefinition()
-                        .name(_LTN.sanitized(serviceSpec))
-                        .type(serviceAsGraphQlType)
-                        .build().getName()),
+                    FieldCoordinates.coordinates("Query", fieldName),
                     (DataFetcher<Object>) environment -> service);
         }
     }

Reply via email to