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 3a6bf75c01 CAUSEWAY-3676: more cleanup of ObjectTypeFactory vs 
GqlvObjectSpec
3a6bf75c01 is described below

commit 3a6bf75c018a7643b801f63e11a5b4139f357443
Author: danhaywood <[email protected]>
AuthorDate: Fri Jan 19 12:29:49 2024 +0000

    CAUSEWAY-3676: more cleanup of ObjectTypeFactory vs GqlvObjectSpec
---
 .../graphql/viewer/source/GqlvObjectSpec.java      | 22 ++++++++++++++++++++++
 1 file changed, 22 insertions(+)

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..e72ec723ca 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,8 @@ 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.GraphQLList;
 import graphql.schema.GraphQLObjectType;
 
@@ -17,9 +19,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}
  */
@@ -30,7 +35,9 @@ public class GqlvObjectSpec {
     @Getter private final GraphQLObjectType metaType;
     @Getter private final GraphQLFieldDefinition metaField;
 
+    // TODO: make this private
     @Getter private final GraphQLObjectType.Builder gqlObjectTypeBuilder;
+    private final GraphQLInputObjectType.Builder gqlinputObjectTypeBuilder;
 
     public String getLogicalTypeNameSanitized() {
         val logicalTypeName = objectSpec.getLogicalTypeName();
@@ -47,8 +54,14 @@ public class GqlvObjectSpec {
     private GraphQLObjectType gqlObjectType;
 
     public GqlvObjectSpec(final ObjectSpecification objectSpec) {
+
         this.objectSpec = objectSpec;
+
         this.gqlObjectTypeBuilder = 
newObject().name(getLogicalTypeNameSanitized());
+        this.gqlinputObjectTypeBuilder = 
newInputObject().name(GQL_INPUTTYPE_PREFIX + getLogicalTypeNameSanitized());
+
+
+        // output builder's fields
 
         // meta type
         val metaTypeBuilder = newObject().name(getLogicalTypeNameSanitized() + 
"__DomainObject_meta");
@@ -63,6 +76,15 @@ public class GqlvObjectSpec {
         metaField = 
newFieldDefinition().name("_gql_meta").type(metaType).build();
         gqlObjectTypeBuilder.field(metaField);
 
+        // input builder's fields
+        // id field
+        gqlinputObjectTypeBuilder
+                .field(GraphQLInputObjectField.newInputObjectField()
+                        .name("id")
+                        .type(nonNull(Scalars.GraphQLID))
+                        .build());
+
+
     }
 
 

Reply via email to