Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Play 3.0 upgrade #1559

Merged
merged 20 commits into from
May 9, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion app/Components.scala
Original file line number Diff line number Diff line change
Expand Up @@ -117,7 +117,7 @@ class AppComponents(context: Context, val config: ApplicationConfiguration)
allowedOrigins = Origins.Matching(Set(config.environment.applicationUrl))
)

override lazy val assets: Assets = new controllers.Assets(httpErrorHandler, assetsMetadata)
override lazy val assets: Assets = new controllers.Assets(httpErrorHandler, assetsMetadata, environment)

val router: Router = new Routes(httpErrorHandler, status, pandaAuth, v2Assets, v1Assets, views, faciaTool,
pressController, faciaToolV2, defaults, userDataController, faciaCapiProxy, thumbnail, front, collection, storiesVisible, vanityRedirects, troubleshoot, v2App, gridProxy, editions)
Expand Down
2 changes: 1 addition & 1 deletion app/config/Filters.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package config

import akka.stream.Materializer
import org.apache.pekko.stream.Materializer
import play.api.mvc.ResponseHeader
import play.filters.gzip.GzipFilter

Expand Down
6 changes: 3 additions & 3 deletions app/controllers/CollectionController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,15 +4,15 @@ import scala.concurrent.ExecutionContext
import com.gu.facia.client.models.CollectionConfigJson
import config.UpdateManager
import permissions.ConfigPermissionCheck
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import services.Press
import updates._
import util.Acl
import util.Requests._
import logging.Logging

object CollectionRequest {
implicit val jsonFormat = Json.format[CollectionRequest]
implicit val jsonFormat: OFormat[CollectionRequest] = Json.format[CollectionRequest]
}

case class CollectionRequest(
Expand All @@ -21,7 +21,7 @@ case class CollectionRequest(
)

object CreateCollectionResponse {
implicit val jsonFormat = Json.format[CreateCollectionResponse]
implicit val jsonFormat: OFormat[CreateCollectionResponse] = Json.format[CreateCollectionResponse]
}

case class CreateCollectionResponse(id: String)
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/DefaultsController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ import model.editions.{EditionsAppTemplates, FeastAppTemplates}
import model.editions.templates.CuratedPlatformDefinition
import model.{Cached, UserDataForDefaults}
import permissions.Permissions
import play.api.libs.json.{JsValue, Json}
import play.api.libs.json.{JsValue, Json, OWrites}
import switchboard.SwitchManager
import util.{Acl, AclJson}

object Defaults {
implicit val jsonFormat = Json.writes[Defaults]
implicit val jsonFormat: OWrites[Defaults] = Json.writes[Defaults]
}

case class Defaults(
Expand Down
5 changes: 2 additions & 3 deletions app/controllers/FaciaContentApiProxy.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,10 @@
package controllers

import java.net.{URI, URLEncoder}

import com.gu.contentapi.client.IAMEncoder
import metrics.FaciaToolMetrics
import model.Cached
import play.api.libs.concurrent.Futures
import play.api.libs.concurrent.{DefaultFutures, Futures}
import play.api.libs.concurrent.Futures._

import scala.concurrent.duration._
Expand All @@ -18,7 +17,7 @@ import scala.concurrent.ExecutionContext


class FaciaContentApiProxy(capi: Capi, val deps: BaseFaciaControllerComponents)(implicit ec: ExecutionContext) extends BaseFaciaController(deps) with Logging {
implicit val futures = new play.api.libs.concurrent.DefaultFutures(akka.actor.ActorSystem())
implicit val futures: DefaultFutures = new play.api.libs.concurrent.DefaultFutures(org.apache.pekko.actor.ActorSystem())
implicit class string2encodings(s: String) {
lazy val urlEncoded = URLEncoder.encode(s, "utf-8")
}
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/FaciaToolV2Controller.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import frontsapi.model.UpdateActions
import logging.Logging
import metrics.FaciaToolMetrics
import model.NoCache
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import services._
import updates._
import util.Acl
Expand All @@ -16,7 +16,7 @@ import permissions.CollectionPermissions
import scala.concurrent.{ExecutionContext, Future}

object CollectionSpec {
implicit val jsonFormat = Json.format[CollectionSpec]
implicit val jsonFormat: OFormat[CollectionSpec] = Json.format[CollectionSpec]
}

case class CollectionSpec(id: String, lastUpdated: Option[Long])
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/PressController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ package controllers
import com.amazonaws.services.dynamodbv2.AmazonDynamoDB
import org.scanamo.generic.auto.genericDerivedFormat
import org.scanamo.{Scanamo, Table}
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import software.amazon.awssdk.services.dynamodb.DynamoDbClient

object FrontPressRecord {
implicit val jsonFormat = Json.format[FrontPressRecord]
implicit val jsonFormat: OFormat[FrontPressRecord] = Json.format[FrontPressRecord]
}
case class FrontPressRecord (
stageName: String,
Expand Down
4 changes: 2 additions & 2 deletions app/controllers/StoriesVisibleController.scala
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
package controllers

import logging.Logging
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import services.ContainerService
import slices.Story

object StoriesVisibleRequest {
implicit val jsonFormat = Json.format[StoriesVisibleRequest]
implicit val jsonFormat: OFormat[StoriesVisibleRequest] = Json.format[StoriesVisibleRequest]
}

case class StoriesVisibleRequest(
Expand Down
7 changes: 3 additions & 4 deletions app/controllers/UserDataController.scala
Original file line number Diff line number Diff line change
Expand Up @@ -20,16 +20,15 @@ import org.scanamo.generic.semiauto._
import scala.util.{Failure, Success, Try}

class UserDataController(frontsApi: FrontsApi, dynamoClient: DynamoDbClient, val deps: BaseFaciaControllerComponents)(implicit ec: ExecutionContext) extends BaseFaciaController(deps) {
implicit val UserData: DynamoFormat[UserData] = deriveDynamoFormat[UserData]
implicit val Trail: DynamoFormat[Trail] = deriveDynamoFormat[Trail]
implicit val JsValue: DynamoFormat[JsValue] = DynamoFormat.xmap[JsValue, String](
implicit val jsValue: DynamoFormat[JsValue] = DynamoFormat.xmap[JsValue, String](
x => Try(Json.parse(x)) match {
case Success(y) => Right(y)
case Failure(t) => Left(TypeCoercionError(t))
},
x => (Json.stringify(x))
)

implicit val trail: DynamoFormat[Trail] = deriveDynamoFormat[Trail]
implicit val userData: DynamoFormat[UserData] = deriveDynamoFormat[UserData]
private lazy val userDataTable = Table[UserData](config.faciatool.userDataTable)

private def updateClipboardContentByFieldName(articles: Option[JsValue], userEmail: String, fieldName: String) = {
Expand Down
2 changes: 1 addition & 1 deletion app/filters/LoggingFilter.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ package filters

import javax.inject.Inject
import scala.jdk.CollectionConverters._
import akka.stream.Materializer
import org.apache.pekko.stream.Materializer
import play.api.MarkerContext
import play.api.mvc._
import scala.concurrent.{ExecutionContext, Future}
Expand Down
2 changes: 1 addition & 1 deletion app/logging/Logging.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,5 +3,5 @@ package logging
import play.api.Logger

trait Logging {
implicit val logger = Logger(getClass)
implicit val logger: Logger = Logger(getClass)
}
2 changes: 1 addition & 1 deletion app/metrics/metrics.scala
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ import java.io.File
import java.lang.management.{GarbageCollectorMXBean, ManagementFactory}
import java.util.concurrent.atomic.AtomicLong

import akka.actor.Scheduler
import org.apache.pekko.actor.Scheduler
import com.amazonaws.services.cloudwatch.model.{Dimension, StandardUnit}
import logging.Logging

Expand Down
4 changes: 2 additions & 2 deletions app/model/FeatureSwitches.scala
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package model

import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}

object FeatureSwitch {
implicit val jsonFormat = Json.format[FeatureSwitch]
implicit val jsonFormat: OFormat[FeatureSwitch] = Json.format[FeatureSwitch]
}

case class FeatureSwitch(
Expand Down
6 changes: 3 additions & 3 deletions app/model/UserData.scala
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,12 @@ package model

import com.gu.facia.client.models.Trail
import org.scanamo.{DynamoFormat, TypeCoercionError}
import play.api.libs.json.{JsValue, Json}
import play.api.libs.json.{JsValue, Json, OFormat}

import scala.util.{Failure, Success, Try}

object UserData {
implicit val jsonFormat = Json.format[UserData]
implicit val jsonFormat: OFormat[UserData] = Json.format[UserData]

implicit val jsValueFormat: DynamoFormat[JsValue] = DynamoFormat.xmap[JsValue, String](
x => Try(Json.parse(x)) match {
Expand Down Expand Up @@ -39,7 +39,7 @@ case class UserData(
)

object UserDataForDefaults {
implicit val jsonFormat = Json.format[UserDataForDefaults]
implicit val jsonFormat: OFormat[UserDataForDefaults] = Json.format[UserDataForDefaults]

def fromUserData(userData: UserData, clipboardArticles: Option[List[Trail]]): UserDataForDefaults = {
val featureSwitches = userData.featureSwitches.fold(FeatureSwitches.all) { userFeatureSwitches =>
Expand Down
10 changes: 5 additions & 5 deletions app/model/editions/EditionsAppTemplates.scala
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import model.editions.templates.TemplateHelpers.Defaults
import model.editions.templates._
import model.editions.templates.feast.{FeastNorthernHemisphere, FeastSouthernHemisphere}
import org.postgresql.util.PGobject
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import services.editions.prefills.CapiQueryTimeWindow


Expand Down Expand Up @@ -70,7 +70,7 @@ object CuratedPlatform extends PlayEnum[CuratedPlatform] {
}

case object WeekDay extends Enumeration(1) {
implicit lazy val implicitConversions = scala.language.implicitConversions
implicit lazy val implicitConversions: languageFeature.implicitConversions = scala.language.implicitConversions

type WeekDay = Value
val Mon, Tues, Wed, Thurs, Fri, Sat, Sun = Value
Expand Down Expand Up @@ -133,11 +133,11 @@ object Edition extends PlayEnum[Edition] {
}

case class FrontPresentation(swatch: Swatch) {
implicit def frontPresentationFormat = Json.format[FrontPresentation]
implicit def frontPresentationFormat: OFormat[FrontPresentation] = Json.format[FrontPresentation]
}

object FrontPresentation {
implicit def frontPresentationFormat = Json.format[FrontPresentation]
implicit def frontPresentationFormat: OFormat[FrontPresentation] = Json.format[FrontPresentation]
}

case class CollectionPresentation()
Expand All @@ -152,7 +152,7 @@ case class CapiPrefillQuery(queryString: String, pathType: PathType) {
}

object CapiPrefillQuery {
implicit def format = Json.format[CapiPrefillQuery]
implicit def format: OFormat[CapiPrefillQuery] = Json.format[CapiPrefillQuery]
}

import model.editions.WeekDay._
Expand Down
10 changes: 5 additions & 5 deletions app/model/editions/EditionsCard.scala
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ package model.editions
import enumeratum.EnumEntry.Uncapitalised
import enumeratum.{EnumEntry, PlayEnum}
import logging.Logging
import play.api.libs.json.Json
import play.api.libs.json.{JsResult, Json, OFormat}
import scalikejdbc.WrappedResultSet

case class Image (
Expand All @@ -17,13 +17,13 @@ case class Image (
}

object Image {
implicit val format = Json.format[Image]
implicit val format: OFormat[Image] = Json.format[Image]
}

case class CoverCardImages(mobile: Option[Image], tablet: Option[Image])

object CoverCardImages {
implicit val format = Json.format[CoverCardImages]
implicit val format: OFormat[CoverCardImages] = Json.format[CoverCardImages]
}

case class CardMetadata(
Expand All @@ -47,7 +47,7 @@ case class CardMetadata(
)

object CardMetadata {
implicit val format = Json.format[CardMetadata]
implicit val format: OFormat[CardMetadata] = Json.format[CardMetadata]

val default = CardMetadata(None, None, None, None, None, None, None, None, None, None, None, None, None)
}
Expand Down Expand Up @@ -109,7 +109,7 @@ case class EditionsCard(id: String, cardType: CardType, addedOn: Long, metadata:
}

object EditionsCard extends Logging {
implicit val writes = Json.format[EditionsCard]
implicit val writes: OFormat[EditionsCard] = Json.format[EditionsCard]

def fromRowOpt(rs: WrappedResultSet, prefix: String = ""): Option[EditionsCard] = {
for {
Expand Down
8 changes: 4 additions & 4 deletions app/model/editions/EditionsClientCollection.scala
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
package model.editions

import model.editions.client.ClientCardMetadata
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import services.editions.prefills.CapiQueryTimeWindow

// Ideally the frontend can be changed so we don't have this weird modelling!
Expand Down Expand Up @@ -41,9 +41,9 @@ case class EditionsClientCollection(
case class EditionsFrontendCollectionWrapper(id: String, collection: EditionsClientCollection)

object EditionsFrontendCollectionWrapper {
implicit def cardFormat = Json.format[EditionsClientCard]
implicit def collectionFormat = Json.format[EditionsClientCollection]
implicit def collectionWrapperFormat = Json.format[EditionsFrontendCollectionWrapper]
implicit def cardFormat: OFormat[EditionsClientCard] = Json.format[EditionsClientCard]
implicit def collectionFormat: OFormat[EditionsClientCollection] = Json.format[EditionsClientCollection]
implicit def collectionWrapperFormat: OFormat[EditionsFrontendCollectionWrapper] = Json.format[EditionsFrontendCollectionWrapper]

def fromCollection(collection: EditionsCollection): EditionsFrontendCollectionWrapper = {
EditionsFrontendCollectionWrapper(
Expand Down
5 changes: 2 additions & 3 deletions app/model/editions/EditionsCollection.scala
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
package model.editions

import java.time.ZonedDateTime

import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat}
import scalikejdbc.WrappedResultSet
import services.editions.prefills.CapiQueryTimeWindow

Expand All @@ -25,7 +24,7 @@ case class EditionsCollection(
}

object EditionsCollection {
implicit val format = Json.format[EditionsCollection]
implicit val format: OFormat[EditionsCollection] = Json.format[EditionsCollection]

def fromRow(rs: WrappedResultSet, prefix: String = ""): EditionsCollection = {
val capiPrefillQuery: Option[CapiPrefillQuery] =
Expand Down
6 changes: 3 additions & 3 deletions app/model/editions/EditionsFront.scala
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
package model.editions

import org.postgresql.util.PGobject
import play.api.libs.json.Json
import play.api.libs.json.{Json, OFormat, OWrites}
import scalikejdbc.WrappedResultSet

object EditionsFrontMetadata {
implicit val format = Json.format[EditionsFrontMetadata]
implicit val format: OFormat[EditionsFrontMetadata] = Json.format[EditionsFrontMetadata]
}

case class EditionsFrontMetadata(nameOverride: Option[String], swatch: Option[Swatch]) {
Expand Down Expand Up @@ -45,7 +45,7 @@ case class EditionsFront(
}

object EditionsFront {
implicit val writes = Json.writes[EditionsFront]
implicit val writes: OWrites[EditionsFront] = Json.writes[EditionsFront]

def fromRow(rs: WrappedResultSet, prefix: String = ""): EditionsFront = {
EditionsFront(
Expand Down
8 changes: 3 additions & 5 deletions app/model/editions/IssueVersion.scala
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package model.editions

import play.api.libs.json.Json
import play.api.libs.json.{Format, Json, OFormat}
import scalikejdbc.WrappedResultSet
import enumeratum.{EnumEntry, PlayEnum}

Expand Down Expand Up @@ -28,8 +28,7 @@ case class IssueVersionEvent(
)

object IssueVersionEvent {
implicit val reads = Json.reads[IssueVersionEvent]
implicit val writes = Json.writes[IssueVersionEvent]
implicit val format: Format[IssueVersionEvent] = Json.format[IssueVersionEvent]

def fromRow(rs: WrappedResultSet): IssueVersionEvent = IssueVersionEvent(
rs.zonedDateTime("event_time").toInstant.toEpochMilli,
Expand All @@ -47,8 +46,7 @@ case class IssueVersion(
)

object IssueVersion {
implicit val reads = Json.reads[IssueVersion]
implicit val writes = Json.writes[IssueVersion]
implicit val format: OFormat[IssueVersion] = Json.format[IssueVersion]

def fromRow(rs: WrappedResultSet): IssueVersion = IssueVersion(
rs.string("version_id"),
Expand Down
Loading
Loading