From 535058f5995a4fb9cc240225a617a51a0991c70d Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Tue, 14 Nov 2017 17:11:32 -0800 Subject: Add implicit GetResult definitions --- .../core/database/SlickGetResultSupport.scala | 38 ++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala 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..9a77a82 --- /dev/null +++ b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala @@ -0,0 +1,38 @@ +package xyz.driver.core.database + +import java.util.Calendar + +import slick.jdbc.GetResult +import xyz.driver.core.date.{Date, Month} +import xyz.driver.core.{Id, Name} +import xyz.driver.core.time.Time + +trait SlickGetResultSupport { + implicit def idGetResult[U]: GetResult[Id[U]] = + GetResult(r => Id[U](r.nextString())) + implicit def idOptionGetResult[U]: GetResult[Option[Id[U]]] = + GetResult(_.nextStringOption().map(Id.apply[U])) + + implicit def nameGetResult[U]: GetResult[Name[U]] = + GetResult(r => Name[U](r.nextString())) + implicit def nameOptionGetResult[U]: GetResult[Option[Name[U]]] = + GetResult(_.nextStringOption().map(Name.apply[U])) + + implicit val timeGetResult: GetResult[Time] = + GetResult(r => Time(r.nextTimestamp.getTime)) + implicit val timeOptionGetResult: GetResult[Option[Time]] = + GetResult(_.nextTimestampOption().map(t => Time(t.getTime))) + + private def javaDateToDate(jdate: java.util.Date): Date = { + val cal = Calendar.getInstance + cal.setTime(jdate) + Date(cal.get(Calendar.YEAR), Month(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) + } + + implicit val dateGetResult: GetResult[Date] = + GetResult(r => javaDateToDate(r.nextDate())) + implicit val dateOptionGetResult: GetResult[Option[Date]] = + GetResult(_.nextDateOption().map(javaDateToDate)) +} + +object SlickGetResultSupport extends SlickGetResultSupport -- cgit v1.2.3 From c1539325371043b96aefa9dccfb93b2ecacb00b4 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Tue, 14 Nov 2017 17:11:40 -0800 Subject: Add offset method to Pagination --- src/main/scala/xyz/driver/core/rest/package.scala | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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]) { -- cgit v1.2.3 From af0a2e9f1d4612f04549d1ac668ece5cd9d81bc3 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Tue, 14 Nov 2017 17:14:43 -0800 Subject: Move java date conversion to Date object helper method --- .../xyz/driver/core/database/SlickGetResultSupport.scala | 16 ++++------------ src/main/scala/xyz/driver/core/date.scala | 6 ++++++ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala index 9a77a82..40a93d7 100644 --- a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala +++ b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala @@ -1,11 +1,9 @@ package xyz.driver.core.database -import java.util.Calendar - import slick.jdbc.GetResult -import xyz.driver.core.date.{Date, Month} -import xyz.driver.core.{Id, Name} +import xyz.driver.core.date.Date import xyz.driver.core.time.Time +import xyz.driver.core.{Id, Name} trait SlickGetResultSupport { implicit def idGetResult[U]: GetResult[Id[U]] = @@ -23,16 +21,10 @@ trait SlickGetResultSupport { implicit val timeOptionGetResult: GetResult[Option[Time]] = GetResult(_.nextTimestampOption().map(t => Time(t.getTime))) - private def javaDateToDate(jdate: java.util.Date): Date = { - val cal = Calendar.getInstance - cal.setTime(jdate) - Date(cal.get(Calendar.YEAR), Month(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) - } - implicit val dateGetResult: GetResult[Date] = - GetResult(r => javaDateToDate(r.nextDate())) + GetResult(r => Date.fromJavaDate(r.nextDate())) implicit val dateOptionGetResult: GetResult[Option[Date]] = - GetResult(_.nextDateOption().map(javaDateToDate)) + GetResult(_.nextDateOption().map(Date.fromJavaDate)) } object SlickGetResultSupport extends SlickGetResultSupport diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index d6f64e4..1b0ce77 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -86,5 +86,11 @@ object date { case _ => None } } + + def fromJavaDate(date: java.util.Date): Date = { + val cal = Calendar.getInstance + cal.setTime(date) + Date(cal.get(Calendar.YEAR), Month(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) + } } } -- cgit v1.2.3 From 4dd8774c397fe97e94a5675f7742300afc1378f8 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Tue, 14 Nov 2017 17:28:26 -0800 Subject: Rename to follow slick naming conventions --- .../xyz/driver/core/database/SlickGetResultSupport.scala | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala index 40a93d7..345d00e 100644 --- a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala +++ b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala @@ -6,24 +6,24 @@ import xyz.driver.core.time.Time import xyz.driver.core.{Id, Name} trait SlickGetResultSupport { - implicit def idGetResult[U]: GetResult[Id[U]] = + implicit def GetId[U]: GetResult[Id[U]] = GetResult(r => Id[U](r.nextString())) - implicit def idOptionGetResult[U]: GetResult[Option[Id[U]]] = + implicit def GetIdOption[U]: GetResult[Option[Id[U]]] = GetResult(_.nextStringOption().map(Id.apply[U])) - implicit def nameGetResult[U]: GetResult[Name[U]] = + implicit def GetName[U]: GetResult[Name[U]] = GetResult(r => Name[U](r.nextString())) - implicit def nameOptionGetResult[U]: GetResult[Option[Name[U]]] = + implicit def GetNameOption[U]: GetResult[Option[Name[U]]] = GetResult(_.nextStringOption().map(Name.apply[U])) - implicit val timeGetResult: GetResult[Time] = + implicit val GetTime: GetResult[Time] = GetResult(r => Time(r.nextTimestamp.getTime)) - implicit val timeOptionGetResult: GetResult[Option[Time]] = + implicit val GetTimeOption: GetResult[Option[Time]] = GetResult(_.nextTimestampOption().map(t => Time(t.getTime))) - implicit val dateGetResult: GetResult[Date] = + implicit val GetDate: GetResult[Date] = GetResult(r => Date.fromJavaDate(r.nextDate())) - implicit val dateOptionGetResult: GetResult[Option[Date]] = + implicit val GetDateOption: GetResult[Option[Date]] = GetResult(_.nextDateOption().map(Date.fromJavaDate)) } -- cgit v1.2.3 From 116cb77098803ca556e3477dfcd3908f061774a7 Mon Sep 17 00:00:00 2001 From: Zach Smith Date: Tue, 14 Nov 2017 18:19:40 -0800 Subject: Use sqlDateToDate instead of Date.fromJavaDate --- src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala | 4 ++-- src/main/scala/xyz/driver/core/date.scala | 6 ------ 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala index 345d00e..8293371 100644 --- a/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala +++ b/src/main/scala/xyz/driver/core/database/SlickGetResultSupport.scala @@ -22,9 +22,9 @@ trait SlickGetResultSupport { GetResult(_.nextTimestampOption().map(t => Time(t.getTime))) implicit val GetDate: GetResult[Date] = - GetResult(r => Date.fromJavaDate(r.nextDate())) + GetResult(r => sqlDateToDate(r.nextDate())) implicit val GetDateOption: GetResult[Option[Date]] = - GetResult(_.nextDateOption().map(Date.fromJavaDate)) + GetResult(_.nextDateOption().map(sqlDateToDate)) } object SlickGetResultSupport extends SlickGetResultSupport diff --git a/src/main/scala/xyz/driver/core/date.scala b/src/main/scala/xyz/driver/core/date.scala index 1b0ce77..d6f64e4 100644 --- a/src/main/scala/xyz/driver/core/date.scala +++ b/src/main/scala/xyz/driver/core/date.scala @@ -86,11 +86,5 @@ object date { case _ => None } } - - def fromJavaDate(date: java.util.Date): Date = { - val cal = Calendar.getInstance - cal.setTime(date) - Date(cal.get(Calendar.YEAR), Month(cal.get(Calendar.MONTH)), cal.get(Calendar.DAY_OF_MONTH)) - } } } -- cgit v1.2.3