aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvlad <vlad@driver.xyz>2017-10-25 17:51:34 -0700
committervlad <vlad@driver.xyz>2017-10-25 17:51:34 -0700
commitf8eb20e07891203c7ac7c9fa460c6db930acd06a (patch)
treebc83c0e7b219cff4b7555da1e1c29e879d821426
parent5d4b85d9991abe63920e4f4d0e2cad6e6aa09f33 (diff)
downloadrest-query-0.10.9.tar.gz
rest-query-0.10.9.tar.bz2
rest-query-0.10.9.zip
Fixing filters parsing for UUIDsv0.10.9
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala7
-rw-r--r--src/test/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParserSuite.scala7
2 files changed, 10 insertions, 4 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
index 41533fe..a19945a 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
@@ -108,10 +108,9 @@ object SearchFilterParser {
P((IgnoreCase("true") | IgnoreCase("false")).!.map(_.toBoolean))
private val binaryAtomParser: Parser[SearchFilterExpr.Atom.Binary] = P(
- dimensionParser ~ whitespaceParser ~ (
- (numericOperatorParser.! ~ whitespaceParser ~ (longParser | booleanParser | numberParser.!)) |
- (commonOperatorParser.! ~ whitespaceParser ~ AnyChar.rep(min = 1).!)
- ) ~ End
+ dimensionParser ~ whitespaceParser ~
+ ((numericOperatorParser.! ~ whitespaceParser ~ (longParser | booleanParser | numberParser.!) ~ End) |
+ (commonOperatorParser.! ~ whitespaceParser ~ AnyChar.rep(min = 1).! ~ End))
).map {
case BinaryAtomFromTuple(atom) => atom
}
diff --git a/src/test/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParserSuite.scala b/src/test/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParserSuite.scala
index ac5eec1..ac0010f 100644
--- a/src/test/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParserSuite.scala
+++ b/src/test/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParserSuite.scala
@@ -126,6 +126,13 @@ class SearchFilterParserSuite extends FreeSpecLike with Checkers {
}
}
+ "actual patientId uuid" - {
+ "should parse the full UUID" in {
+ val filter = SearchFilterParser.parse(Seq("filters" -> "patientId EQ 4b4879f7-42b3-4b7c-a685-5c97d9e69e7c"))
+ assert(filter === Success(SearchFilterExpr.Atom.Binary(Dimension(None, "patient_id"), Eq, "4b4879f7-42b3-4b7c-a685-5c97d9e69e7c")))
+ }
+ }
+
"all operators" - {
"should be parsed with numeric values" in check {
val testQueryGen = queryGen(