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);
}
}