aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2018-03-01 16:16:28 -0800
committervlad <vlad@driver.xyz>2018-03-01 16:16:28 -0800
commit1cd8cc2dba8c500873a6f69dc7ac767a8d17e606 (patch)
treef01766c13dca1086f48ce3e748448fbc9496696c
parent32fb404ef3d99eb4aa9bc5e25e083bc13f5972dc (diff)
downloadrest-query-1cd8cc2dba8c500873a6f69dc7ac767a8d17e606.tar.gz
rest-query-1cd8cc2dba8c500873a6f69dc7ac767a8d17e606.tar.bz2
rest-query-1cd8cc2dba8c500873a6f69dc7ac767a8d17e606.zip
Support for UUID lists
-rw-r--r--src/main/scala/xyz/driver/restquery/rest/parsers/SearchFilterParser.scala5
-rw-r--r--src/test/scala/xyz/driver/restquery/rest/parsers/SearchFilterParserSuite.scala17
2 files changed, 20 insertions, 2 deletions
diff --git a/src/main/scala/xyz/driver/restquery/rest/parsers/SearchFilterParser.scala b/src/main/scala/xyz/driver/restquery/rest/parsers/SearchFilterParser.scala
index 13f82a6..23cb2f0 100644
--- a/src/main/scala/xyz/driver/restquery/rest/parsers/SearchFilterParser.scala
+++ b/src/main/scala/xyz/driver/restquery/rest/parsers/SearchFilterParser.scala
@@ -134,8 +134,9 @@ object SearchFilterParser {
private val nAryAtomParser: Parser[SearchFilterExpr.Atom.NAry] = P(
dimensionParser ~ whitespaceParser ~ (
naryOperatorParser ~ whitespaceParser ~
- ((longParser.rep(min = 1, sep = ",") ~ End) | (booleanParser
- .rep(min = 1, sep = ",") ~ End) |
+ ((uuidParser.rep(min = 1, sep = ",") ~ End) |
+ (longParser.rep(min = 1, sep = ",") ~ End) |
+ (booleanParser.rep(min = 1, sep = ",") ~ End) |
(nAryValueParser.!.rep(min = 1, sep = ",") ~ End))
)
).map {
diff --git a/src/test/scala/xyz/driver/restquery/rest/parsers/SearchFilterParserSuite.scala b/src/test/scala/xyz/driver/restquery/rest/parsers/SearchFilterParserSuite.scala
index 92c1953..9abf372 100644
--- a/src/test/scala/xyz/driver/restquery/rest/parsers/SearchFilterParserSuite.scala
+++ b/src/test/scala/xyz/driver/restquery/rest/parsers/SearchFilterParserSuite.scala
@@ -145,6 +145,23 @@ class SearchFilterParserSuite extends FreeSpecLike with Checkers {
}
}
+ "actual trial uuid list" - {
+ "should parse the list of UUIDs as java.util.UUID type" in {
+ val filter = SearchFilterParser.parse(Seq("filters" -> ("trialId in 57b375a3-2eb3-4fed-a80d-0ffda69d68cf," +
+ "f82539f1-39a1-48b5-9ca9-636c131bdbf1,2676b5c0-7b14-4962-9455-04055dc37f59")))
+ assert(
+ filter === Success(SearchFilterExpr.Atom.NAry(
+ Dimension(None, "trial_id"),
+ In,
+ Seq(
+ UUID.fromString("57b375a3-2eb3-4fed-a80d-0ffda69d68cf"),
+ UUID.fromString("f82539f1-39a1-48b5-9ca9-636c131bdbf1"),
+ UUID.fromString("2676b5c0-7b14-4962-9455-04055dc37f59")
+ )
+ )))
+ }
+ }
+
"all operators" - {
"should be parsed with numeric values" in check {
val testQueryGen = queryGen(