Skip to content

Commit e459380

Browse files
Yashesh123Yashesh Chauhan(yashesh.chauhan)
andauthored
allow regex comparison operator. Included test cases. (#162)
* allow regex comparison operator. Included test cases. * changed variable name from MA to MATCHES Co-authored-by: Yashesh Chauhan(yashesh.chauhan) <yashesh.chauhan@infosys.com>
1 parent 5c893e5 commit e459380

File tree

5 files changed

+92
-7
lines changed

5 files changed

+92
-7
lines changed

core/src/main/kotlin/org/neo4j/graphql/Predicates.kt

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -205,6 +205,8 @@ enum class FieldOperator(
205205
C("_contains", "CONTAINS", { lhs, rhs -> lhs.contains(rhs) }),
206206
SW("_starts_with", "STARTS WITH", { lhs, rhs -> lhs.startsWith(rhs) }),
207207
EW("_ends_with", "ENDS WITH", { lhs, rhs -> lhs.endsWith(rhs) }),
208+
MATCHES("_matches", "=~", {lhs, rhs -> lhs.matches(rhs) }),
209+
208210

209211
DISTANCE(NEO4j_POINT_DISTANCE_FILTER_SUFFIX, "=", { lhs, rhs -> distanceOp(lhs, rhs, EQ) }, distance = true),
210212
DISTANCE_LT(NEO4j_POINT_DISTANCE_FILTER_SUFFIX + "_lt", "<", { lhs, rhs -> distanceOp(lhs, rhs, LT) }, distance = true),
@@ -282,7 +284,7 @@ enum class FieldOperator(
282284
// todo list types
283285
!type.isScalar() -> listOf(EQ, NEQ, IN, NIN)
284286
else -> listOf(EQ, NEQ, IN, NIN, LT, LTE, GT, GTE) +
285-
if (type.name() == "String" || type.name() == "ID") listOf(C, NC, SW, NSW, EW, NEW) else emptyList()
287+
if (type.name() == "String" || type.name() == "ID") listOf(C, NC, SW, NSW, EW, NEW, MATCHES) else emptyList()
286288
}
287289
}
288290

core/src/test/kotlin/org/neo4j/graphql/ParserTests.kt

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ class ParserTests {
2020
fun parseFilter() {
2121
val schemaParser = SchemaParser()
2222
val schema = """
23-
input _MovieFilter { AND:[_MovieFilter!], OR:[_MovieFilter!], NOT:[_MovieFilter!], movieId:ID, movieId_not:ID, movieId_in:ID, movieId_not_in:ID, movieId_lt:ID, movieId_lte:ID, movieId_gt:ID, movieId_gte:ID, movieId_contains:ID, movieId_not_contains:ID, movieId_starts_with:ID, movieId_not_starts_with:ID, movieId_ends_with:ID, movieId_not_ends_with:ID, _id:String, _id_not:String, _id_in:String, _id_not_in:String, _id_lt:String, _id_lte:String, _id_gt:String, _id_gte:String, _id_contains:String, _id_not_contains:String, _id_starts_with:String, _id_not_starts_with:String, _id_ends_with:String, _id_not_ends_with:String, title:String, title_not:String, title_in:String, title_not_in:String, title_lt:String, title_lte:String, title_gt:String, title_gte:String, title_contains:String, title_not_contains:String, title_starts_with:String, title_not_starts_with:String, title_ends_with:String, title_not_ends_with:String, year:Int, year_not:Int, year_in:Int, year_not_in:Int, year_lt:Int, year_lte:Int, year_gt:Int, year_gte:Int, released:Int, released_not:Int, released_in:Int, released_not_in:Int, released_lt:Int, released_lte:Int, released_gt:Int, released_gte:Int, plot:String, plot_not:String, plot_in:String, plot_not_in:String, plot_lt:String, plot_lte:String, plot_gt:String, plot_gte:String, plot_contains:String, plot_not_contains:String, plot_starts_with:String, plot_not_starts_with:String, plot_ends_with:String, plot_not_ends_with:String, poster:String, poster_not:String, poster_in:String, poster_not_in:String, poster_lt:String, poster_lte:String, poster_gt:String, poster_gte:String, poster_contains:String, poster_not_contains:String, poster_starts_with:String, poster_not_starts_with:String, poster_ends_with:String, poster_not_ends_with:String, imdbRating:Float, imdbRating_not:Float, imdbRating_in:Float, imdbRating_not_in:Float, imdbRating_lt:Float, imdbRating_lte:Float, imdbRating_gt:Float, imdbRating_gte:Float, degree:Int, degree_not:Int, degree_in:Int, degree_not_in:Int, degree_lt:Int, degree_lte:Int, degree_gt:Int, degree_gte:Int, avgStars:Float, avgStars_not:Float, avgStars_in:Float, avgStars_not_in:Float, avgStars_lt:Float, avgStars_lte:Float, avgStars_gt:Float, avgStars_gte:Float, scaleRating:Float, scaleRating_not:Float, scaleRating_in:Float, scaleRating_not_in:Float, scaleRating_lt:Float, scaleRating_lte:Float, scaleRating_gt:Float, scaleRating_gte:Float, scaleRatingFloat:Float, scaleRatingFloat_not:Float, scaleRatingFloat_in:Float, scaleRatingFloat_not_in:Float, scaleRatingFloat_lt:Float, scaleRatingFloat_lte:Float, scaleRatingFloat_gt:Float, scaleRatingFloat_gte:Float } """.trimIndent()
23+
input _MovieFilter { AND:[_MovieFilter!], OR:[_MovieFilter!], NOT:[_MovieFilter!], movieId:ID, movieId_not:ID, movieId_in:ID, movieId_not_in:ID, movieId_lt:ID, movieId_lte:ID, movieId_gt:ID, movieId_gte:ID, movieId_contains:ID, movieId_matches:ID, movieId_not_contains:ID, movieId_starts_with:ID, movieId_not_starts_with:ID, movieId_ends_with:ID, movieId_not_ends_with:ID, _id:String, _id_not:String, _id_in:String, _id_not_in:String, _id_lt:String, _id_lte:String, _id_gt:String, _id_gte:String, _id_contains:String, _id_matches:String, _id_not_contains:String, _id_starts_with:String, _id_not_starts_with:String, _id_ends_with:String, _id_not_ends_with:String, title:String, title_not:String, title_in:String, title_not_in:String, title_lt:String, title_lte:String, title_gt:String, title_gte:String, title_contains:String, title_matches:String, title_not_contains:String, title_starts_with:String, title_not_starts_with:String, title_ends_with:String, title_not_ends_with:String, year:Int, year_not:Int, year_in:Int, year_not_in:Int, year_lt:Int, year_lte:Int, year_gt:Int, year_gte:Int, released:Int, released_not:Int, released_in:Int, released_not_in:Int, released_lt:Int, released_lte:Int, released_gt:Int, released_gte:Int, plot:String, plot_not:String, plot_in:String, plot_not_in:String, plot_lt:String, plot_lte:String, plot_gt:String, plot_gte:String, plot_contains:String, plot_matches:String, plot_not_contains:String, plot_starts_with:String, plot_not_starts_with:String, plot_ends_with:String, plot_not_ends_with:String, poster:String, poster_not:String, poster_in:String, poster_not_in:String, poster_lt:String, poster_lte:String, poster_gt:String, poster_gte:String, poster_contains:String, poster_matches:String, poster_not_contains:String, poster_starts_with:String, poster_not_starts_with:String, poster_ends_with:String, poster_not_ends_with:String, imdbRating:Float, imdbRating_not:Float, imdbRating_in:Float, imdbRating_not_in:Float, imdbRating_lt:Float, imdbRating_lte:Float, imdbRating_gt:Float, imdbRating_gte:Float, degree:Int, degree_not:Int, degree_in:Int, degree_not_in:Int, degree_lt:Int, degree_lte:Int, degree_gt:Int, degree_gte:Int, avgStars:Float, avgStars_not:Float, avgStars_in:Float, avgStars_not_in:Float, avgStars_lt:Float, avgStars_lte:Float, avgStars_gt:Float, avgStars_gte:Float, scaleRating:Float, scaleRating_not:Float, scaleRating_in:Float, scaleRating_not_in:Float, scaleRating_lt:Float, scaleRating_lte:Float, scaleRating_gt:Float, scaleRating_gte:Float, scaleRatingFloat:Float, scaleRatingFloat_not:Float, scaleRatingFloat_in:Float, scaleRatingFloat_not_in:Float, scaleRatingFloat_lt:Float, scaleRatingFloat_lte:Float, scaleRatingFloat_gt:Float, scaleRatingFloat_gte:Float } """.trimIndent()
2424
val typeDefinitionRegistry = schemaParser.parse(schema)
2525
assertEquals(true, typeDefinitionRegistry.getType("_MovieFilter").isPresent)
2626
@@ -30,19 +30,19 @@ class ParserTests {
3030
fun parseFilter2() {
3131
val schemaParser = SchemaParser()
3232
val schema = """
33-
input _MovieFilter { AND:[_MovieFilter!], OR:[_MovieFilter!], NOT:[_MovieFilter!], movieId:ID, movieId_not:ID, movieId_in:ID, movieId_not_in:ID, movieId_lt:ID, movieId_lte:ID, movieId_gt:ID, movieId_gte:ID, movieId_contains:ID, movieId_not_contains:ID, movieId_starts_with:ID, movieId_not_starts_with:ID, movieId_ends_with:ID, movieId_not_ends_with:ID, _id:String, _id_not:String, _id_in:String, _id_not_in:String, _id_lt:String, _id_lte:String, _id_gt:String, _id_gte:String, _id_contains:String, _id_not_contains:String, _id_starts_with:String, _id_not_starts_with:String, _id_ends_with:String, _id_not_ends_with:String, title:String, title_not:String, title_in:String, title_not_in:String, title_lt:String, title_lte:String, title_gt:String, title_gte:String, title_contains:String, title_not_contains:String, title_starts_with:String, title_not_starts_with:String, title_ends_with:String, title_not_ends_with:String, year:Int, year_not:Int, year_in:Int, year_not_in:Int, year_lt:Int, year_lte:Int, year_gt:Int, year_gte:Int, released:Int, released_not:Int, released_in:Int, released_not_in:Int, released_lt:Int, released_lte:Int, released_gt:Int, released_gte:Int, plot:String, plot_not:String, plot_in:String, plot_not_in:String, plot_lt:String, plot_lte:String, plot_gt:String, plot_gte:String, plot_contains:String, plot_not_contains:String, plot_starts_with:String, plot_not_starts_with:String, plot_ends_with:String, plot_not_ends_with:String, poster:String, poster_not:String, poster_in:String, poster_not_in:String, poster_lt:String, poster_lte:String, poster_gt:String, poster_gte:String, poster_contains:String, poster_not_contains:String, poster_starts_with:String, poster_not_starts_with:String, poster_ends_with:String, poster_not_ends_with:String, imdbRating:Float, imdbRating_not:Float, imdbRating_in:Float, imdbRating_not_in:Float, imdbRating_lt:Float, imdbRating_lte:Float, imdbRating_gt:Float, imdbRating_gte:Float, degree:Int, degree_not:Int, degree_in:Int, degree_not_in:Int, degree_lt:Int, degree_lte:Int, degree_gt:Int, degree_gte:Int, avgStars:Float, avgStars_not:Float, avgStars_in:Float, avgStars_not_in:Float, avgStars_lt:Float, avgStars_lte:Float, avgStars_gt:Float, avgStars_gte:Float, scaleRating:Float, scaleRating_not:Float, scaleRating_in:Float, scaleRating_not_in:Float, scaleRating_lt:Float, scaleRating_lte:Float, scaleRating_gt:Float, scaleRating_gte:Float, scaleRatingFloat:Float, scaleRatingFloat_not:Float, scaleRatingFloat_in:Float, scaleRatingFloat_not_in:Float, scaleRatingFloat_lt:Float, scaleRatingFloat_lte:Float, scaleRatingFloat_gt:Float, scaleRatingFloat_gte:Float }
33+
input _MovieFilter { AND:[_MovieFilter!], OR:[_MovieFilter!], NOT:[_MovieFilter!], movieId:ID, movieId_not:ID, movieId_in:ID, movieId_not_in:ID, movieId_lt:ID, movieId_lte:ID, movieId_gt:ID, movieId_gte:ID, movieId_contains:ID,movieId_matches:ID, movieId_not_contains:ID, movieId_starts_with:ID, movieId_not_starts_with:ID, movieId_ends_with:ID, movieId_not_ends_with:ID, _id:String, _id_not:String, _id_in:String, _id_not_in:String, _id_lt:String, _id_lte:String, _id_gt:String, _id_gte:String, _id_contains:String, _id_matches:String, _id_not_contains:String, _id_starts_with:String, _id_not_starts_with:String, _id_ends_with:String, _id_not_ends_with:String, title:String, title_not:String, title_in:String, title_not_in:String, title_lt:String, title_lte:String, title_gt:String, title_gte:String, title_contains:String, title_matches:String, title_not_contains:String, title_starts_with:String, title_not_starts_with:String, title_ends_with:String, title_not_ends_with:String, year:Int, year_not:Int, year_in:Int, year_not_in:Int, year_lt:Int, year_lte:Int, year_gt:Int, year_gte:Int, released:Int, released_not:Int, released_in:Int, released_not_in:Int, released_lt:Int, released_lte:Int, released_gt:Int, released_gte:Int, plot:String, plot_not:String, plot_in:String, plot_not_in:String, plot_lt:String, plot_lte:String, plot_gt:String, plot_gte:String, plot_contains:String, plot_matches:String, plot_not_contains:String, plot_starts_with:String, plot_not_starts_with:String, plot_ends_with:String, plot_not_ends_with:String, poster:String, poster_not:String, poster_in:String, poster_not_in:String, poster_lt:String, poster_lte:String, poster_gt:String, poster_gte:String, poster_contains:String, poster_matches:String, poster_not_contains:String, poster_starts_with:String, poster_not_starts_with:String, poster_ends_with:String, poster_not_ends_with:String, imdbRating:Float, imdbRating_not:Float, imdbRating_in:Float, imdbRating_not_in:Float, imdbRating_lt:Float, imdbRating_lte:Float, imdbRating_gt:Float, imdbRating_gte:Float, degree:Int, degree_not:Int, degree_in:Int, degree_not_in:Int, degree_lt:Int, degree_lte:Int, degree_gt:Int, degree_gte:Int, avgStars:Float, avgStars_not:Float, avgStars_in:Float, avgStars_not_in:Float, avgStars_lt:Float, avgStars_lte:Float, avgStars_gt:Float, avgStars_gte:Float, scaleRating:Float, scaleRating_not:Float, scaleRating_in:Float, scaleRating_not_in:Float, scaleRating_lt:Float, scaleRating_lte:Float, scaleRating_gt:Float, scaleRating_gte:Float, scaleRatingFloat:Float, scaleRatingFloat_not:Float, scaleRatingFloat_in:Float, scaleRatingFloat_not_in:Float, scaleRatingFloat_lt:Float, scaleRatingFloat_lte:Float, scaleRatingFloat_gt:Float, scaleRatingFloat_gte:Float }
3434
enum _MovieOrdering { movieId_asc ,movieId_desc,_id_asc ,_id_desc,title_asc ,title_desc,year_asc ,year_desc,released_asc ,released_desc,plot_asc ,plot_desc,poster_asc ,poster_desc,imdbRating_asc ,imdbRating_desc,degree_asc ,degree_desc,avgStars_asc ,avgStars_desc,scaleRating_asc ,scaleRating_desc,scaleRatingFloat_asc ,scaleRatingFloat_desc }
3535
input _MovieInput { movieId:ID, _id:String, title:String, year:Int, released:Int, plot:String, poster:String, imdbRating:Float, degree:Int, avgStars:Float, scaleRating:Float, scaleRatingFloat:Float }
36-
input _GenreFilter { AND:[_GenreFilter!], OR:[_GenreFilter!], NOT:[_GenreFilter!], _id:String, _id_not:String, _id_in:String, _id_not_in:String, _id_lt:String, _id_lte:String, _id_gt:String, _id_gte:String, _id_contains:String, _id_not_contains:String, _id_starts_with:String, _id_not_starts_with:String, _id_ends_with:String, _id_not_ends_with:String, name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
36+
input _GenreFilter { AND:[_GenreFilter!], OR:[_GenreFilter!], NOT:[_GenreFilter!], _id:String, _id_not:String, _id_in:String, _id_not_in:String, _id_lt:String, _id_lte:String, _id_gt:String, _id_gte:String, _id_contains:String, _id_matches:String, _id_not_contains:String, _id_starts_with:String, _id_not_starts_with:String, _id_ends_with:String, _id_not_ends_with:String, name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_matches:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
3737
enum _GenreOrdering { _id_asc ,_id_desc,name_asc ,name_desc }
3838
input _GenreInput { _id:String, name:String }
39-
input _StateFilter { AND:[_StateFilter!], OR:[_StateFilter!], NOT:[_StateFilter!], name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
39+
input _StateFilter { AND:[_StateFilter!], OR:[_StateFilter!], NOT:[_StateFilter!], name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_matches:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
4040
enum _StateOrdering { name_asc ,name_desc }
4141
input _StateInput { name:String }
42-
input _ActorFilter { AND:[_ActorFilter!], OR:[_ActorFilter!], NOT:[_ActorFilter!], userId:ID, userId_not:ID, userId_in:ID, userId_not_in:ID, userId_lt:ID, userId_lte:ID, userId_gt:ID, userId_gte:ID, userId_contains:ID, userId_not_contains:ID, userId_starts_with:ID, userId_not_starts_with:ID, userId_ends_with:ID, userId_not_ends_with:ID, name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
42+
input _ActorFilter { AND:[_ActorFilter!], OR:[_ActorFilter!], NOT:[_ActorFilter!], userId:ID, userId_not:ID, userId_in:ID, userId_not_in:ID, userId_lt:ID, userId_lte:ID, userId_gt:ID, userId_gte:ID, userId_contains:ID, userId_matches:ID, userId_not_contains:ID, userId_starts_with:ID, userId_not_starts_with:ID, userId_ends_with:ID, userId_not_ends_with:ID, name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_matches:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
4343
enum _ActorOrdering { userId_asc ,userId_desc,name_asc ,name_desc }
4444
input _ActorInput { userId:ID, name:String }
45-
input _UserFilter { AND:[_UserFilter!], OR:[_UserFilter!], NOT:[_UserFilter!], userId:ID, userId_not:ID, userId_in:ID, userId_not_in:ID, userId_lt:ID, userId_lte:ID, userId_gt:ID, userId_gte:ID, userId_contains:ID, userId_not_contains:ID, userId_starts_with:ID, userId_not_starts_with:ID, userId_ends_with:ID, userId_not_ends_with:ID, name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
45+
input _UserFilter { AND:[_UserFilter!], OR:[_UserFilter!], NOT:[_UserFilter!], userId:ID, userId_not:ID, userId_in:ID, userId_not_in:ID, userId_lt:ID, userId_lte:ID, userId_gt:ID, userId_gte:ID, userId_contains:ID, userId_matches:ID, userId_not_contains:ID, userId_starts_with:ID, userId_not_starts_with:ID, userId_ends_with:ID, userId_not_ends_with:ID, name:String, name_not:String, name_in:String, name_not_in:String, name_lt:String, name_lte:String, name_gt:String, name_gte:String, name_contains:String, name_matches:String, name_not_contains:String, name_starts_with:String, name_not_starts_with:String, name_ends_with:String, name_not_ends_with:String }
4646
enum _UserOrdering { userId_asc ,userId_desc,name_asc ,name_desc }
4747
input _UserInput { userId:ID, name:String }
4848
input _FriendOfFilter { AND:[_FriendOfFilter!], OR:[_FriendOfFilter!], NOT:[_FriendOfFilter!], since:Int, since_not:Int, since_in:Int, since_not_in:Int, since_lt:Int, since_lte:Int, since_gt:Int, since_gte:Int }

core/src/test/resources/augmentation-tests.adoc

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -655,6 +655,7 @@ input _Knows0Filter {
655655
OR: [_Knows0Filter!]
656656
id: ID
657657
id_contains: ID
658+
id_matches: ID
658659
id_ends_with: ID
659660
id_gt: ID
660661
id_gte: ID
@@ -702,6 +703,7 @@ input _Knows1Filter {
702703
OR: [_Knows1Filter!]
703704
id: ID
704705
id_contains: ID
706+
id_matches: ID
705707
id_ends_with: ID
706708
id_gt: ID
707709
id_gte: ID
@@ -748,6 +750,7 @@ input _Knows4Filter {
748750
OR: [_Knows4Filter!]
749751
_id: ID
750752
_id_contains: ID
753+
_id_matches: ID
751754
_id_ends_with: ID
752755
_id_gt: ID
753756
_id_gte: ID
@@ -795,6 +798,7 @@ input _MovieFilter {
795798
OR: [_MovieFilter!]
796799
id: ID
797800
id_contains: ID
801+
id_matches: ID
798802
id_ends_with: ID
799803
id_gt: ID
800804
id_gte: ID
@@ -912,6 +916,7 @@ input _Person0Filter {
912916
location_not: _Neo4jPointInput
913917
name: String
914918
name_contains: String
919+
name_matches: String
915920
name_ends_with: String
916921
name_gt: String
917922
name_gte: String
@@ -936,6 +941,7 @@ input _Person1Filter {
936941
born_not_in: [_Neo4jDateInput]
937942
name: String
938943
name_contains: String
944+
name_matches: String
939945
name_ends_with: String
940946
name_gt: String
941947
name_gte: String
@@ -973,6 +979,7 @@ input _Person2Filter {
973979
born_not_in: [_Neo4jDateTimeInput]
974980
name: String
975981
name_contains: String
982+
name_matches: String
976983
name_ends_with: String
977984
name_gt: String
978985
name_gte: String
@@ -1003,6 +1010,7 @@ input _Person3Filter {
10031010
born_not_in: [_Neo4jLocalTimeInput]
10041011
name: String
10051012
name_contains: String
1013+
name_matches: String
10061014
name_ends_with: String
10071015
name_gt: String
10081016
name_gte: String
@@ -1032,6 +1040,7 @@ input _Person4Filter {
10321040
born_not_in: [_Neo4jLocalDateTimeInput]
10331041
id: ID
10341042
id_contains: ID
1043+
id_matches: ID
10351044
id_ends_with: ID
10361045
id_gt: ID
10371046
id_gte: ID
@@ -1046,6 +1055,7 @@ input _Person4Filter {
10461055
id_starts_with: ID
10471056
name: String
10481057
name_contains: String
1058+
name_matches: String
10491059
name_ends_with: String
10501060
name_gt: String
10511061
name_gte: String
@@ -1072,6 +1082,7 @@ input _Person5Filter {
10721082
OR: [_Person5Filter!]
10731083
id: ID
10741084
id_contains: ID
1085+
id_matches: ID
10751086
id_ends_with: ID
10761087
id_gt: ID
10771088
id_gte: ID
@@ -1108,6 +1119,7 @@ input _PublisherFilter {
11081119
OR: [_PublisherFilter!]
11091120
name: ID
11101121
name_contains: ID
1122+
name_matches: ID
11111123
name_ends_with: ID
11121124
name_gt: ID
11131125
name_gte: ID

0 commit comments

Comments
 (0)