def fromResponseItem()

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
    }
  }