aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@driver.xyz>2017-08-08 00:11:13 -0700
committerJakob Odersky <jakob@driver.xyz>2017-08-16 19:26:10 -0700
commita59d6910eaccf9b5540fb41648a7d4e67cc241b5 (patch)
treec27ba7bb752835c47b0f569ea8c48c3bed21e513 /src/main/scala
parent75fcedad9270c70c014af819b7d46dcfe00c1282 (diff)
downloadrest-query-a59d6910eaccf9b5540fb41648a7d4e67cc241b5.tar.gz
rest-query-a59d6910eaccf9b5540fb41648a7d4e67cc241b5.tar.bz2
rest-query-a59d6910eaccf9b5540fb41648a7d4e67cc241b5.zip
Fix parsers and renable fatal warnings
Diffstat (limited to 'src/main/scala')
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/parsers/ListRequestParser.scala20
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/parsers/PagiationParser.scala27
-rw-r--r--src/main/scala/xyz/driver/pdsuicommon/parsers/PaginationParser.scala29
3 files changed, 29 insertions, 47 deletions
diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/ListRequestParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/ListRequestParser.scala
deleted file mode 100644
index c3146ce..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/parsers/ListRequestParser.scala
+++ /dev/null
@@ -1,20 +0,0 @@
-package xyz.driver.pdsuicommon.parsers
-
-import xyz.driver.pdsuicommon.db.{Pagination, SearchFilterExpr, Sorting}
-import play.api.mvc._
-
-import scala.util.Try
-
-final case class ListRequestParameters(filter: SearchFilterExpr, sorting: Sorting, pagination: Pagination)
-
-class ListRequestParser(validSortingFields: Set[String]) {
-
- def tryParse(request: Request[AnyContent]): Try[ListRequestParameters] = {
- for {
- queryFilters <- SearchFilterParser.parse(request.queryString)
- sorting <- SortingParser.parse(validSortingFields, request.queryString)
- pagination <- PaginationParser.parse(request.queryString)
- } yield ListRequestParameters(queryFilters, sorting, pagination)
- }
-
-}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/PagiationParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/PagiationParser.scala
deleted file mode 100644
index dd492e4..0000000
--- a/src/main/scala/xyz/driver/pdsuicommon/parsers/PagiationParser.scala
+++ /dev/null
@@ -1,27 +0,0 @@
-package xyz.driver.pdsuicommon.parsers
-
-import xyz.driver.pdsuicommon.db._
-import scala.util._
-
-object PaginationParser {
-
- @deprecated("play-akka transition", "0")
- def parse(query: Map[String, Seq[String]]): Try[Pagination] =
- parse(query.toSeq.flatMap {
- case (key, values) =>
- values.map(value => key -> value)
- })
-
- def parse(query: Seq[(String, String)]): Try[Pagination] = {
- val IntString = """(\d+)""".r
- def validate(field: String) = query.collectFirst { case (`field`, size) => size } match {
- case Some(IntString(x)) => x.toInt
- case Some(str) => throw new ParseQueryArgException((field, s"must be an integer (found $str)"))
- case None => throw new ParseQueryArgException((field, "must be defined"))
- }
-
- Try {
- Pagination(validate("pageSize"), validate("pageNumber"))
- }
- }
-}
diff --git a/src/main/scala/xyz/driver/pdsuicommon/parsers/PaginationParser.scala b/src/main/scala/xyz/driver/pdsuicommon/parsers/PaginationParser.scala
new file mode 100644
index 0000000..b59b1a5
--- /dev/null
+++ b/src/main/scala/xyz/driver/pdsuicommon/parsers/PaginationParser.scala
@@ -0,0 +1,29 @@
+package xyz.driver.pdsuicommon.parsers
+
+import xyz.driver.pdsuicommon.db._
+import scala.util._
+
+object PaginationParser {
+
+ @deprecated("play-akka transition", "0")
+ def parse(query: Map[String, Seq[String]]): Try[Pagination] =
+ parse(query.toSeq.flatMap {
+ case (key, values) =>
+ values.map(value => key -> value)
+ })
+
+ def parse(query: Seq[(String, String)]): Try[Pagination] = {
+ val IntString = """(\d+)""".r
+ def validate(field: String, default: Int) = query.collectFirst { case (`field`, size) => size } match {
+ case Some(IntString(x)) if x.toInt > 0 => x.toInt
+ case Some(IntString(x)) => throw new ParseQueryArgException((field, s"must greater than zero (found $x)"))
+ case Some(str) => throw new ParseQueryArgException((field, s"must be an integer (found $str)"))
+ case None => default
+ }
+
+ Try {
+ Pagination(validate("pageSize", Pagination.Default.pageSize),
+ validate("pageNumber", Pagination.Default.pageNumber))
+ }
+ }
+}