in app/vidispine/SearchResultDocument.scala [52:99]
def fromResponseItem(
itemSimplified: SearchResultItemSimplified,
projectId: Int
): Option[VSOnlineOutputMessage] = {
try {
val mediaTier = "ONLINE"
val itemId = Option(itemSimplified.id)
if (itemId.get != "") {
logger.info(s"Vidispine item found: ${itemId.get}")
}
val likelyFile = itemSimplified.item.shape.headOption.flatMap(_.getLikelyFile)
val filePath = likelyFile.flatMap(_.getAbsolutePath)
if (filePath.isDefined) {
logger.info(s"File path found at: ${filePath.get}")
}
val fileSize = likelyFile.flatMap(_.sizeOption)
val projectIdAndContainingProjectIds = projectId +: itemSimplified.valuesForField("gnm_containing_projects", Some("Asset")).map(_.value).map(_.toInt)
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
}
} catch {
case throwable: Throwable =>
logger.error(s"Got some kind of Throwable exception: ${throwable.getMessage}")
None
}
}