aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2017-08-03 14:22:46 -0700
committerJakob Odersky <jakob@driver.xyz>2017-08-16 19:26:10 -0700
commiteb5e95e95714ce23705a0de0f4dd525a8efeafe2 (patch)
treededdb5928cedbf3383bedb5115992e8b81e51847 /src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
parent985ee69beed836b97f3476306736d3f15ce37e1c (diff)
downloadrest-query-eb5e95e95714ce23705a0de0f4dd525a8efeafe2.tar.gz
rest-query-eb5e95e95714ce23705a0de0f4dd525a8efeafe2.tar.bz2
rest-query-eb5e95e95714ce23705a0de0f4dd525a8efeafe2.zip
Remove play requirements from parsers
Diffstat (limited to 'src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala10
1 files changed, 4 insertions, 6 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
index c6ea2e1..58b80ce 100644
--- a/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
+++ b/src/main/scala/xyz/driver/pdsuicommon/parsers/SearchFilterParser.scala
@@ -1,11 +1,9 @@
-package xyz.driver.server.parsers
+package xyz.driver.pdsuicommon.parsers
-import xyz.driver.server.parsers.errors.ParseQueryArgException
import xyz.driver.pdsuicommon.utils.Implicits.{toCharOps, toStringOps}
import fastparse.all._
import fastparse.core.Parsed
import fastparse.parsers.Intrinsics.CharPred
-import play.api.routing.sird._
import xyz.driver.pdsuicommon.db.{SearchFilterBinaryOperation, SearchFilterExpr, SearchFilterNAryOperation}
import scala.util.Try
@@ -110,11 +108,11 @@ object SearchFilterParser {
private val atomParser: Parser[SearchFilterExpr.Atom] = P(binaryAtomParser | nAryAtomParser)
- def parse(queryString: QueryString): Try[SearchFilterExpr] = Try {
- queryString.getOrElse("filters", Seq.empty) match {
+ def parse(query: Seq[(String, String)]): Try[SearchFilterExpr] = Try {
+ query.toList.collect { case ("filters", value) => value } match {
case Nil => SearchFilterExpr.Empty
- case head +: Nil =>
+ case head :: Nil =>
atomParser.parse(head) match {
case Parsed.Success(x, _) => x
case e: Parsed.Failure => throw new ParseQueryArgException("filters" -> formatFailure(1, e))