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 c0da19e819 CAUSEWAY-3676: moves functionality to ServiceBehaviour
c0da19e819 is described below

commit c0da19e8195e84c2a729e26386899fc445c2089c
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 17:58:02 2024 +0000

    CAUSEWAY-3676: moves functionality to ServiceBehaviour
---
 .../viewer/graphql/viewer/source/GqlvServiceBehaviour.java   | 12 +++++++-----
 .../viewer/graphql/viewer/source/QueryFieldFactory.java      |  3 ++-
 2 files changed, 9 insertions(+), 6 deletions(-)

diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceBehaviour.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceBehaviour.java
index 942d7270ec..7eca805b32 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceBehaviour.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvServiceBehaviour.java
@@ -4,6 +4,7 @@ import graphql.schema.DataFetcher;
 import graphql.schema.FieldCoordinates;
 import graphql.schema.GraphQLCodeRegistry;
 
+import graphql.schema.GraphQLFieldDefinition;
 import graphql.schema.GraphQLObjectType;
 
 import lombok.RequiredArgsConstructor;
@@ -28,15 +29,16 @@ public class GqlvServiceBehaviour {
     private final GraphQLCodeRegistry.Builder codeRegistryBuilder;
 
 
-    public void addAction(
-            final ObjectAction objectAction,
-            final GraphQLCodeRegistry.Builder codeRegistryBuilder) {
+    public void addDataFetcher(
+            Map.Entry<ObjectAction, GraphQLFieldDefinition> entry) {
+
+        final ObjectAction objectAction = entry.getKey();
+        GraphQLFieldDefinition fieldDefinition = entry.getValue();
 
         final GraphQLObjectType graphQLObjectType = 
structure.getGqlObjectType();
 
-        String fieldName = objectAction.getId();
         codeRegistryBuilder.dataFetcher(
-                FieldCoordinates.coordinates(graphQLObjectType, fieldName),
+                FieldCoordinates.coordinates(graphQLObjectType, 
fieldDefinition),
                 (DataFetcher<Object>) dataFetchingEnvironment -> {
 
                     Object domainObjectInstance = 
dataFetchingEnvironment.getSource();
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 630cbd0e52..3016d61eb0 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
@@ -83,8 +83,9 @@ public class QueryFieldFactory {
 
         GqlvServiceBehaviour serviceBehaviour = new 
GqlvServiceBehaviour(serviceStructure, service, specificationLoader, 
codeRegistryBuilder);
 
-        objectActionList.forEach(objectAction -> 
serviceBehaviour.addAction(objectAction, codeRegistryBuilder));
+        
serviceStructure.getSafeActions().entrySet().forEach(serviceBehaviour::addDataFetcher);
 
+        // instead, should delegate to GqlvTopLevelQueryStructure and then 
GqlvTopLevelQueryBehaviour
         GraphQLFieldDefinition topLevelQueryField = 
serviceStructure.addTopLevelQueryField();
 
         codeRegistryBuilder.dataFetcher(

Reply via email to