blob: 03567843c4cde97b330c3a092df731652a8ffeaa (
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.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)
}
}
|