blob: 617a77e272ae4369ff42d7c80a3701ebb4fa525f (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
package xyz.driver.server.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)
}
}
|