aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/xyz/driver/core/rest/package.scala
diff options
context:
space:
mode:
authorAleksandr <ognelisar@gmail.com>2018-03-12 17:32:25 +0700
committerAleksandr <ognelisar@gmail.com>2018-03-12 17:32:25 +0700
commit04a21e9a5ab46f885cb51626d274d570fefe4a29 (patch)
tree862c9b8702c4f9f9410b85d09107cc73d5355c5a /src/main/scala/xyz/driver/core/rest/package.scala
parent1ea8a5c1298edae003f5d4d8c4b9e8581d834b04 (diff)
parent96aa1fbf7608e3b9cd1ba06c57ab1f356409733d (diff)
downloaddriver-core-04a21e9a5ab46f885cb51626d274d570fefe4a29.tar.gz
driver-core-04a21e9a5ab46f885cb51626d274d570fefe4a29.tar.bz2
driver-core-04a21e9a5ab46f885cb51626d274d570fefe4a29.zip
Merge branch 'master' into TM-1431
Diffstat (limited to 'src/main/scala/xyz/driver/core/rest/package.scala')
-rw-r--r--src/main/scala/xyz/driver/core/rest/package.scala10
1 files changed, 10 insertions, 0 deletions
diff --git a/src/main/scala/xyz/driver/core/rest/package.scala b/src/main/scala/xyz/driver/core/rest/package.scala
index 3b17167..07eb92e 100644
--- a/src/main/scala/xyz/driver/core/rest/package.scala
+++ b/src/main/scala/xyz/driver/core/rest/package.scala
@@ -227,6 +227,16 @@ object `package` {
val paginated: Directive1[Pagination] =
parameters(("pageSize".as[Int] ? 100, "pageNumber".as[Int] ? 1)).as(Pagination)
+ private def extractPagination(pageSizeOpt: Option[Int], pageNumberOpt: Option[Int]): Option[Pagination] =
+ (pageSizeOpt, pageNumberOpt) match {
+ case (Some(size), Some(number)) => Option(Pagination(size, number))
+ case (None, None) => Option.empty[Pagination]
+ case (_, _) => throw new IllegalArgumentException("Pagination's parameters are incorrect")
+ }
+
+ val optionalPagination: Directive1[Option[Pagination]] =
+ parameters(("pageSize".as[Int].?, "pageNumber".as[Int].?)).as(extractPagination)
+
def paginationQuery(pagination: Pagination) =
Seq("pageNumber" -> pagination.pageNumber.toString, "pageSize" -> pagination.pageSize.toString)
}