app/model/image.scala (23 lines of code) (raw):

package model import play.api.libs.json._ import ai.x.play.json.Jsonx import ai.x.play.json.Encoders.encoder import ai.x.play.json.implicits.optionWithNull import com.gu.tagmanagement.{Image => ThriftImage} case class Image(imageId: String, assets: List[ImageAsset]) { def asThrift = ThriftImage( imageId = imageId, assets = assets.map(_.asThrift) ) def asExportedXml = { <imageId>{this.imageId}</imageId> <assets>{this.assets.map(_.asExportedXml)}</assets> } } object Image { implicit val imageFormat: OFormat[Image] = Jsonx.formatCaseClass[Image] def apply(thriftImage: ThriftImage): Image = Image( imageId = thriftImage.imageId, assets = thriftImage.assets.map(ImageAsset(_)).toList ) }