Skip to content

Commit 8f7a581

Browse files
authored
Merge pull request #95 from graphql-java/update-to-22
Updating to v22
2 parents c22f5ec + 9439062 commit 8f7a581

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

README.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -23,11 +23,13 @@ This library provides extended validation of fields and field arguments for [gra
2323
```
2424

2525
```groovy
26-
implementation 'com.graphql-java:graphql-java-extended-validation:21.0'
26+
implementation 'com.graphql-java:graphql-java-extended-validation:22.0'
2727
```
2828

2929
> Note:
3030
>
31+
> use 22.0 or above for graphql-java 22.x and above
32+
>
3133
> use 21.0 or above for graphql-java 21.x and above
3234
>
3335
> use 20.0 for graphql-java 20.x and above

build.gradle

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ repositories {
4040
}
4141

4242
dependencies {
43-
api "com.graphql-java:graphql-java:21.0"
43+
api "com.graphql-java:graphql-java:22.0"
4444
api "com.graphql-java:graphql-java-extended-scalars:21.0"
4545
api "org.hibernate.validator:hibernate-validator:7.0.1.Final"
4646
api "org.glassfish:jakarta.el:4.0.2"

src/main/java/graphql/validation/schemawiring/ValidationSchemaWiring.java

+13-3
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,12 @@
55
import graphql.schema.DataFetcher;
66
import graphql.schema.GraphQLFieldDefinition;
77
import graphql.schema.GraphQLFieldsContainer;
8+
import graphql.schema.GraphQLObjectType;
89
import graphql.schema.idl.SchemaDirectiveWiring;
910
import graphql.schema.idl.SchemaDirectiveWiringEnvironment;
1011
import graphql.validation.interpolation.MessageInterpolator;
1112
import graphql.validation.rules.OnValidationErrorStrategy;
13+
import graphql.validation.rules.TargetedValidationRules;
1214
import graphql.validation.rules.ValidationRules;
1315

1416
import java.util.Locale;
@@ -34,15 +36,23 @@ public ValidationSchemaWiring(ValidationRules ruleCandidates) {
3436
public GraphQLFieldDefinition onField(SchemaDirectiveWiringEnvironment<GraphQLFieldDefinition> env) {
3537
GraphQLFieldsContainer fieldsContainer = env.getFieldsContainer();
3638
GraphQLFieldDefinition fieldDefinition = env.getFieldDefinition();
37-
39+
TargetedValidationRules rules = ruleCandidates.buildRulesFor(fieldDefinition, fieldsContainer);
40+
if (rules.isEmpty()) {
41+
return fieldDefinition;
42+
}
43+
if (! (fieldsContainer instanceof GraphQLObjectType)) {
44+
// only object type fields can have data fetchers
45+
return fieldDefinition;
46+
}
47+
GraphQLObjectType graphQLObjectType = (GraphQLObjectType) fieldsContainer;
3848
OnValidationErrorStrategy errorStrategy = ruleCandidates.getOnValidationErrorStrategy();
3949
MessageInterpolator messageInterpolator = ruleCandidates.getMessageInterpolator();
4050
Locale locale = ruleCandidates.getLocale();
4151

42-
final DataFetcher<?> currentDF = env.getCodeRegistry().getDataFetcher(fieldsContainer, fieldDefinition);
52+
final DataFetcher<?> currentDF = env.getCodeRegistry().getDataFetcher(graphQLObjectType, fieldDefinition);
4353
final DataFetcher<?> newDF = buildValidatingDataFetcher(errorStrategy, messageInterpolator, currentDF, locale);
4454

45-
env.getCodeRegistry().dataFetcher(fieldsContainer, fieldDefinition, newDF);
55+
env.getCodeRegistry().dataFetcher(graphQLObjectType, fieldDefinition, newDF);
4656

4757
return fieldDefinition;
4858
}

0 commit comments

Comments
 (0)