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(