diff options
author | zachdriver <zach@driver.xyz> | 2017-11-15 10:39:25 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-11-15 10:39:25 -0800 |
commit | 8d30baada3a9c25ef61ef80511f4b4f25799f0cb (patch) | |
tree | cce2afe144b2cdccd1cdd8d18356c4a699933c81 | |
parent | 523cc3ff8c3ee8f0e968d2a193bf427a8ef772bf (diff) | |
parent | 116cb77098803ca556e3477dfcd3908f061774a7 (diff) | |
download | driver-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.scala | 30 | ||||
-rw-r--r-- | src/main/scala/xyz/driver/core/rest/package.scala | 4 |
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]) { |