diff options
author | Aleksandr <ognelisar@gmail.com> | 2018-03-12 17:32:25 +0700 |
---|---|---|
committer | Aleksandr <ognelisar@gmail.com> | 2018-03-12 17:32:25 +0700 |
commit | 04a21e9a5ab46f885cb51626d274d570fefe4a29 (patch) | |
tree | 862c9b8702c4f9f9410b85d09107cc73d5355c5a /src/main/scala/xyz/driver/core/rest/package.scala | |
parent | 1ea8a5c1298edae003f5d4d8c4b9e8581d834b04 (diff) | |
parent | 96aa1fbf7608e3b9cd1ba06c57ab1f356409733d (diff) | |
download | driver-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.scala | 10 |
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) } |