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
