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

commit d17b5e711e48b1fa96a2b115400fe30f4e3fa1e8
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 12:36:31 2024 +0000

    CAUSEWAY-3676: moves creation of InputObjectType into GqlvObjectSpec's 
constructor
---
 .../viewer/graphql/viewer/source/GqlvObjectSpec.java  | 19 +++++++++++++++++++
 .../graphql/viewer/source/ObjectTypeFactory.java      | 18 +++++++++---------
 2 files changed, 28 insertions(+), 9 deletions(-)

diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
index e5198504a5..9d20456c8b 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/GqlvObjectSpec.java
@@ -2,6 +2,9 @@ package org.apache.causeway.viewer.graphql.viewer.source;
 
 import graphql.Scalars;
 import graphql.schema.GraphQLFieldDefinition;
+import graphql.schema.GraphQLInputObjectField;
+import graphql.schema.GraphQLInputObjectType;
+import graphql.schema.GraphQLInputType;
 import graphql.schema.GraphQLList;
 import graphql.schema.GraphQLObjectType;
 
@@ -17,9 +20,12 @@ import 
org.apache.causeway.core.metamodel.spec.feature.OneToManyAssociation;
 import org.apache.causeway.core.metamodel.spec.feature.OneToOneAssociation;
 
 import static graphql.schema.GraphQLFieldDefinition.newFieldDefinition;
+import static graphql.schema.GraphQLInputObjectType.newInputObject;
 import static graphql.schema.GraphQLNonNull.nonNull;
 import static graphql.schema.GraphQLObjectType.newObject;
 
+import static 
org.apache.causeway.viewer.graphql.viewer.source.ObjectTypeFactory.GQL_INPUTTYPE_PREFIX;
+
 /**
  * A wrapper around {@link ObjectSpecification}
  */
@@ -32,6 +38,8 @@ public class GqlvObjectSpec {
 
     @Getter private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
 
+    @Getter private final GraphQLInputType inputType;
+
     public String getLogicalTypeNameSanitized() {
         val logicalTypeName = objectSpec.getLogicalTypeName();
         return _LogicalTypeName.sanitized(logicalTypeName);
@@ -63,6 +71,17 @@ public class GqlvObjectSpec {
         metaField = 
newFieldDefinition().name("_gql_meta").type(metaType).build();
         gqlObjectTypeBuilder.field(metaField);
 
+
+        String inputTypeName = GQL_INPUTTYPE_PREFIX + 
getLogicalTypeNameSanitized();
+        GraphQLInputObjectType.Builder inputTypeBuilder = 
newInputObject().name(inputTypeName);
+        inputTypeBuilder
+                .field(GraphQLInputObjectField.newInputObjectField()
+                        .name("id")
+                        .type(nonNull(Scalars.GraphQLID))
+                        .build());
+        inputType = inputTypeBuilder.build();
+
+
     }
 
 
diff --git 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
index 5fe9864db5..eb96b31325 100644
--- 
a/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
+++ 
b/incubator/viewers/graphql/viewer/src/main/java/org/apache/causeway/viewer/graphql/viewer/source/ObjectTypeFactory.java
@@ -110,15 +110,15 @@ public class ObjectTypeFactory {
 
 
         // create input type
-        String inputTypeName = GQL_INPUTTYPE_PREFIX + 
gqlvObjectSpec.getLogicalTypeNameSanitized();
-        GraphQLInputObjectType.Builder inputTypeBuilder = 
newInputObject().name(inputTypeName);
-        inputTypeBuilder
-            .field(GraphQLInputObjectField.newInputObjectField()
-                .name("id")
-                .type(nonNull(Scalars.GraphQLID))
-                .build());
-        GraphQLInputType inputType = inputTypeBuilder.build();
-
+//        String inputTypeName = GQL_INPUTTYPE_PREFIX + 
gqlvObjectSpec.getLogicalTypeNameSanitized();
+//        GraphQLInputObjectType.Builder inputTypeBuilder = 
newInputObject().name(inputTypeName);
+//        inputTypeBuilder
+//            .field(GraphQLInputObjectField.newInputObjectField()
+//                .name("id")
+//                .type(nonNull(Scalars.GraphQLID))
+//                .build());
+//        GraphQLInputType inputType = inputTypeBuilder.build();
+        GraphQLInputType inputType = gqlvObjectSpec.getInputType();
         graphQLTypeRegistry.addTypeIfNotAlreadyPresent(inputType);
 
         // add fields

Reply via email to