File tree Expand file tree Collapse file tree 3 files changed +31
-1
lines changed
main/java/graphql/validation/constraints
test/groovy/graphql/validation/constraints Expand file tree Collapse file tree 3 files changed +31
-1
lines changed Original file line number Diff line number Diff line change 44import graphql .schema .GraphQLArgument ;
55import graphql .schema .GraphQLFieldDefinition ;
66import graphql .schema .GraphQLFieldsContainer ;
7- import graphql .validation . constraints . standard . ExpressionConstraint ;
7+ import graphql .schema . idl . TypeDefinitionRegistry ;
88import graphql .validation .constraints .standard .AssertFalseConstraint ;
99import graphql .validation .constraints .standard .AssertTrueConstraint ;
1010import graphql .validation .constraints .standard .DecimalMaxConstraint ;
1111import graphql .validation .constraints .standard .DecimalMinConstraint ;
1212import graphql .validation .constraints .standard .DigitsConstraint ;
13+ import graphql .validation .constraints .standard .ExpressionConstraint ;
1314import graphql .validation .constraints .standard .MaxConstraint ;
1415import graphql .validation .constraints .standard .MinConstraint ;
1516import graphql .validation .constraints .standard .NegativeConstraint ;
@@ -85,6 +86,14 @@ public String getDirectivesSDL() {
8586 return sb .toString ();
8687 }
8788
89+ public TypeDefinitionRegistry getDirectivesDeclaration () {
90+ TypeDefinitionRegistry registry = new TypeDefinitionRegistry ();
91+ for (DirectiveConstraint directiveConstraint : constraints .values ()) {
92+ registry .merge (directiveConstraint .getDocumentation ().getDirectiveDeclaration ());
93+ }
94+ return registry ;
95+ }
96+
8897 public List <DirectiveConstraint > whichApplyTo (GraphQLFieldDefinition fieldDefinition , GraphQLFieldsContainer fieldsContainer ) {
8998 return constraints .values ()
9099 .stream ()
Original file line number Diff line number Diff line change 11package graphql .validation .constraints ;
22
3+ import graphql .schema .idl .SchemaParser ;
4+ import graphql .schema .idl .TypeDefinitionRegistry ;
5+
36import java .util .Arrays ;
47import java .util .List ;
58
@@ -8,13 +11,15 @@ public class Documentation {
811 private final String description ;
912 private final String example ;
1013 private final String directiveSDL ;
14+ private final TypeDefinitionRegistry directiveDeclaration ;
1115 private final String messageTemplate ;
1216 private final List <String > applicableTypeNames ;
1317
1418 private Documentation (Builder builder ) {
1519 this .description = builder .description ;
1620 this .example = builder .example ;
1721 this .directiveSDL = builder .directiveSDL ;
22+ this .directiveDeclaration = new SchemaParser ().parse (builder .directiveSDL );
1823 this .messageTemplate = builder .messageTemplate ;
1924 this .applicableTypeNames = builder .applicableTypeNames ;
2025 }
@@ -35,6 +40,10 @@ public String getDirectiveSDL() {
3540 return directiveSDL ;
3641 }
3742
43+ public TypeDefinitionRegistry getDirectiveDeclaration () {
44+ return directiveDeclaration ;
45+ }
46+
3847 public String getMessageTemplate () {
3948 return messageTemplate ;
4049 }
Original file line number Diff line number Diff line change @@ -107,4 +107,16 @@ class DirectiveConstraintsTest extends BaseConstraintTestSupport {
107107 " field( testArg : Int! @Size(max : 2) ) : ID" | _ // not allowed for Size
108108 }
109109
110+ def " can combine as type registry" () {
111+
112+ def directiveValidationRules = DirectiveConstraints . newDirectiveConstraints()
113+ .build()
114+
115+ when :
116+ def declaration = directiveValidationRules. getDirectivesDeclaration()
117+ then :
118+ declaration != null
119+ declaration. getDirectiveDefinitions(). size() == 17
120+
121+ }
110122}
You can’t perform that action at this time.
0 commit comments