From a59d6910eaccf9b5540fb41648a7d4e67cc241b5 Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Tue, 8 Aug 2017 00:11:13 -0700 Subject: Fix parsers and renable fatal warnings --- .../pdsuicommon/parsers/ListRequestParser.scala | 20 --------------- .../pdsuicommon/parsers/PagiationParser.scala | 27 -------------------- .../pdsuicommon/parsers/PaginationParser.scala | 29 ++++++++++++++++++++++ 3 files changed, 29 insertions(+), 47 deletions(-) delete mode 100644 src/main/scala/xyz/driver/pdsuicommon/parsers/ListRequestParser.scala delete mode 100644 src/main/scala/xyz/driver/pdsuicommon/parsers/PagiationParser.scala create mode 100644 src/main/scala/xyz/driver/pdsuicommon/parsers/PaginationParser.scala (limited to 'src/main/scala/xyz/driver/pdsuicommon') 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)) + } + } +} -- cgit v1.2.3