aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzachdriver <zach@driver.xyz>2017-11-15 10:39:25 -0800
committerGitHub <noreply@github.com>2017-11-15 10:39:25 -0800
commit8d30baada3a9c25ef61ef80511f4b4f25799f0cb (patch)
treecce2afe144b2cdccd1cdd8d18356c4a699933c81
parent523cc3ff8c3ee8f0e968d2a193bf427a8ef772bf (diff)
parent116cb77098803ca556e3477dfcd3908f061774a7 (diff)
downloaddriver-core-8d30baada3a9c25ef61ef80511f4b4f25799f0cb.tar.gz
driver-core-8d30baada3a9c25ef61ef80511f4b4f25799f0cb.tar.bz2
driver-core-8d30baada3a9c25ef61ef80511f4b4f25799f0cb.zip
Merge pull request #90 from drivergroup/zsmith/users-searchv1.6.7
Add slick GetResult type-class instances for core types and offset method to Pagination
-rw-r--r--src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala30
-rw-r--r--src/main/scala/xyz/driver/core/rest/package.scala4
2 files changed, 33 insertions, 1 deletions
diff --git a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala
new file mode 100644
index 0000000..8293371
--- /dev/null
+++ b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala
@@ -0,0 +1,30 @@
+package xyz.driver.core.database
+
+import slick.jdbc.GetResult
+import xyz.driver.core.date.Date
+import xyz.driver.core.time.Time
+import xyz.driver.core.{Id, Name}
+
+trait SlickGetResultSupport {
+ implicit def GetId[U]: GetResult[Id[U]] =
+ GetResult(r => Id[U](r.nextString()))
+ implicit def GetIdOption[U]: GetResult[Option[Id[U]]] =
+ GetResult(_.nextStringOption().map(Id.apply[U]))
+
+ implicit def GetName[U]: GetResult[Name[U]] =
+ GetResult(r => Name[U](r.nextString()))
+ implicit def GetNameOption[U]: GetResult[Option[Name[U]]] =
+ GetResult(_.nextStringOption().map(Name.apply[U]))
+
+ implicit val GetTime: GetResult[Time] =
+ GetResult(r => Time(r.nextTimestamp.getTime))
+ implicit val GetTimeOption: GetResult[Option[Time]] =
+ GetResult(_.nextTimestampOption().map(t => Time(t.getTime)))
+
+ implicit val GetDate: GetResult[Date] =
+ GetResult(r => sqlDateToDate(r.nextDate()))
+ implicit val GetDateOption: GetResult[Option[Date]] =
+ GetResult(_.nextDateOption().map(sqlDateToDate))
+}
+
+object SlickGetResultSupport extends SlickGetResultSupport
diff --git a/src/main/scala/xyz/driver/core/rest/package.scala b/src/main/scala/xyz/driver/core/rest/package.scala
index 3697d93..03313d1 100644
--- a/src/main/scala/xyz/driver/core/rest/package.scala
+++ b/src/main/scala/xyz/driver/core/rest/package.scala
@@ -33,7 +33,9 @@ trait ServiceTransport {
implicit mat: Materializer): Future[Unmarshal[ResponseEntity]]
}
-final case class Pagination(pageSize: Int, pageNumber: Int)
+final case class Pagination(pageSize: Int, pageNumber: Int) {
+ def offset: Int = pageSize * pageNumber
+}
object `package` {
implicit class OptionTRestAdditions[T](optionT: OptionT[Future, T]) {