Skip to content

Commit 3c68810

Browse files
OrhideousForNeVeR
authored andcommitted
Migrate from joda-time to java.time
Fixes #226
1 parent c80e0ac commit 3c68810

7 files changed

Lines changed: 18 additions & 19 deletions

File tree

build.sbt

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,6 @@ lazy val scalajvmSettings = Seq(
3434
"org.scalikejdbc" %% "scalikejdbc" % "3.5.0",
3535
"org.scalikejdbc" %% "scalikejdbc-config" % "3.5.0",
3636
"org.scalikejdbc" %% "scalikejdbc-play-initializer" % "2.8.0-scalikejdbc-3.5",
37-
"org.scalikejdbc" %% "scalikejdbc-joda-time" % "3.5.0",
3837
"org.postgresql" % "postgresql" % "9.3-1104-jdbc41",
3938
"jakarta.mail" % "jakarta.mail-api" % "1.6.5",
4039
"com.sun.mail" % "smtp" % "1.6.5",

scalajvm/app/controllers/api/Quotes.scala

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ class Quotes @Inject()(implicit cc: ControllerComponents, configuration: Configu
5050
}
5151

5252
private def buildQuoteDto(quote: Quote): QuoteDTO =
53-
QuoteDTO(quote.id, quote.source, quote.sourceUrl.orNull, quote.time.getMillis, quote.content.getOrElse(""), quote.rating)
53+
QuoteDTO(quote.id, quote.source, quote.sourceUrl.orNull, quote.time.toInstant.toEpochMilli, quote.content.getOrElse(""), quote.rating)
5454

5555
private def json(text: String) = Ok(text).as("application/json; charset=utf-8")
5656
}
Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,5 @@
11
package models.data
22

3-
import org.joda.time.DateTime
4-
import scala.xml._
3+
import java.time.ZonedDateTime
54

6-
case class FeedItem(time: DateTime, title: String, description: String, link: String, guid: String)
5+
case class FeedItem(time: ZonedDateTime, title: String, description: String, link: String, guid: String)

scalajvm/app/models/data/Quote.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package models.data
22

3-
import org.joda.time.DateTime
3+
import java.time.ZonedDateTime
4+
45
import scalikejdbc._
5-
import scalikejdbc.jodatime.JodaTypeBinder._
66

7-
case class Quote(id: Long, source: String, sourceUrl: Option[String], time: DateTime, content: Option[String], rating: Int)
7+
case class Quote(id: Long, source: String, sourceUrl: Option[String], time: ZonedDateTime, content: Option[String], rating: Int)
88
object Quote extends SQLSyntaxSupport[Quote] {
99
override val tableName = "quote"
1010

scalajvm/app/models/data/SuggestedQuote.scala

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
11
package models.data
22

3-
import org.joda.time.DateTime
3+
import java.time.ZonedDateTime
4+
45
import scalikejdbc._
5-
import scalikejdbc.jodatime.JodaTypeBinder._
66

7-
case class SuggestedQuote(id: Long, source: String, time: DateTime,
7+
case class SuggestedQuote(id: Long, source: String, time: ZonedDateTime,
88
content: String, submitterIp: Option[String],
99
token: String)
1010

scalajvm/app/models/queries/QuoteQueries.scala

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,12 @@
11
package models.queries
22

3+
import java.time.{LocalDate, ZonedDateTime, ZoneOffset}
4+
35
import scala.util.Random
46
import scala.math._
57
import helpers.BindableEnumeration
68
import models.data.Quote
7-
import org.joda.time.{DateTime, DateTimeZone}
89
import scalikejdbc._
9-
import scalikejdbc.jodatime.JodaParameterBinderFactory._
1010

1111
object QuoteOrdering extends BindableEnumeration {
1212
val Time, Rating = Value
@@ -25,12 +25,12 @@ object QuoteFilter extends BindableEnumeration {
2525

2626
def toSQL(provider: QuerySQLSyntaxProvider[SQLSyntaxSupport[Quote], Quote],
2727
value: QuoteFilter.Value): Option[SQLSyntax] = {
28-
val today = DateTime.now(DateTimeZone.UTC).withTimeAtStartOfDay()
28+
val today = LocalDate.now(ZoneOffset.UTC).atStartOfDay(ZoneOffset.UTC)
2929
val periodStart = value match {
30-
case QuoteFilter.None => Option.empty[DateTime]
30+
case QuoteFilter.None => Option.empty[ZonedDateTime]
3131
case QuoteFilter.Year => Some(today.withDayOfYear(1))
3232
case QuoteFilter.Month => Some(today.withDayOfMonth(1))
33-
case QuoteFilter.Week => Some(today.withDayOfWeek(1))
33+
case QuoteFilter.Week => Some(today.minusDays(today.getDayOfWeek.ordinal()))
3434
case QuoteFilter.Day => Some(today)
3535
}
3636

@@ -88,7 +88,7 @@ case class QuoteQueries()(implicit session: DBSession) {
8888
def insertQuote(content: String, source: String): Long = {
8989
val q = Quote.column
9090
withSQL {
91-
insert.into(Quote).columns(q.content, q.time, q.source).values(content, DateTime.now(), source)
91+
insert.into(Quote).columns(q.content, q.time, q.source).values(content, ZonedDateTime.now(ZoneOffset.UTC), source)
9292
}.updateAndReturnGeneratedKey().apply()
9393
}
9494

scalajvm/app/models/queries/SuggestedQuoteQueries.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,16 @@
11
package models.queries
22

3+
import java.time.{ZonedDateTime, ZoneOffset}
4+
35
import models.data.SuggestedQuote
4-
import org.joda.time.DateTime
56
import scalikejdbc._
67

78
case class SuggestedQuoteQueries()(implicit session: DBSession) {
89

910
def insertSuggestedQuote(content: String, submitterIp: String, source: String): Long = {
1011
val q = SuggestedQuote.column
1112
withSQL {
12-
insert.into(SuggestedQuote).columns(q.time, q.content, q.submitterIp, q.source).values(DateTime.now(), content, submitterIp, source)
13+
insert.into(SuggestedQuote).columns(q.time, q.content, q.submitterIp, q.source).values(ZonedDateTime.now(ZoneOffset.UTC), content, submitterIp, source)
1314
}.updateAndReturnGeneratedKey().apply()
1415
}
1516

0 commit comments

Comments
 (0)