in common/src/main/scala/com/gu/media/model/MediaAtom.scala [238:277]
def fromThrift(atom: ThriftAtom) = {
val data = atom.tdata
val youtubeDescription: Option[String] = MediaAtomYoutubeDescriptionHandler.getYoutubeDescription(data)
MediaAtom(
id = atom.id,
labels = atom.labels.toList,
contentChangeDetails = ContentChangeDetails.fromThrift(atom.contentChangeDetails),
assets = data.assets.map(Asset.fromThrift).toList,
activeVersion = data.activeVersion,
title = data.title,
category = Category.fromThrift(data.category),
plutoData = data.metadata.flatMap(_.pluto).map(PlutoData.fromThrift),
duration = data.duration,
source = data.source,
posterImage = data.posterImage.map(Image.fromThrift),
trailImage = data.trailImage.map(Image.fromThrift),
youtubeOverrideImage = data.youtubeOverrideImage.map(Image.fromThrift),
description = data.description,
trailText = data.trailText,
tags = data.metadata.flatMap(_.tags.map(_.toList)).getOrElse(Nil),
byline = data.byline.map(_.toList).getOrElse(Nil),
commissioningDesks = data.commissioningDesks.map(_.toList).getOrElse(Nil),
keywords = data.keywords.map(_.toList).getOrElse(Nil),
youtubeCategoryId = data.metadata.flatMap(_.categoryId),
expiryDate = data.metadata.flatMap(_.expiryDate),
blockAds = atom.flags.flatMap(_.blockAds).getOrElse(false),
license = data.metadata.flatMap(_.license),
channelId = data.metadata.flatMap(_.channelId),
legallySensitive = atom.flags.flatMap(_.legallySensitive),
sensitive = atom.flags.flatMap(_.sensitive),
privacyStatus = data.metadata.flatMap(_.privacyStatus).flatMap(PrivacyStatus.fromThrift),
composerCommentsEnabled = data.commentsEnabled,
optimisedForWeb = data.optimisedForWeb,
suppressRelatedContent = data.suppressRelatedContent,
youtubeTitle = data.metadata.flatMap(_.youtube).map(_.title).getOrElse(data.title),
youtubeDescription = youtubeDescription
)
}