in common/src/main/scala/com/gu/multimedia/storagetier/vidispine/SearchResultDocument.scala [54:90]
def fromResponseItem(
itemSimplified: SearchResultItemSimplified,
projectId: Int
): Option[VSOnlineOutputMessage] = {
val mediaTier = "ONLINE"
val itemId = Option(itemSimplified.id)
val likelyFile = itemSimplified.item.shape.headOption.flatMap(_.getLikelyFile)
logger.debug(s"likelyFile: $likelyFile")
val filePath = likelyFile.flatMap(_.getAbsolutePath)
val fileSize = likelyFile.flatMap(_.sizeOption)
val projectIdAndContainingProjectIds = projectId +: safeGetContainingProjects(itemSimplified)
val nearlineId = itemSimplified
.valuesForField("gnm_nearline_id", Some("Asset"))
.headOption
.map(_.value)
val mediaCategory = itemSimplified
.valuesForField("gnm_category", Some("Asset"))
.headOption
.map(_.value)
(itemId, mediaCategory) match {
case (Some(itemId), Some(mediaCategory)) =>
Some(
VSOnlineOutputMessage(
mediaTier,
projectIdAndContainingProjectIds,
filePath,
fileSize,
Some(itemId),
nearlineId,
mediaCategory
)
)
case _ =>
logger.warn(s"VS response missing itemId ($itemId) and/or mediaCategory ($mediaCategory)")
None
}
}