def process()

in app/model/commands/ActiveAssetCommand.scala [23:52]


  def process(): T = {
    log.info(s"Request to set active asset atom=$atomId version=${activateAssetRequest.version}")

    if (atomId != activateAssetRequest.atomId) {
      AtomIdConflict
    }

    val atom = getPreviewAtom(atomId)
    val mediaAtom = MediaAtom.fromThrift(atom)

    val assetsToActivate = mediaAtom.assets.filter(_.version == activateAssetRequest.version)

    if (assetsToActivate.nonEmpty) {
      val duration = assetsToActivate.find(_.platform == Youtube) match {
        case Some(asset) => youtube.getDuration(asset.id)
        case None => mediaAtom.duration
      }

      val updatedAtom = mediaAtom.copy(
        activeVersion = Some(activateAssetRequest.version),
        duration = duration
      )

      log.info(s"Setting active asset atom=$atomId version=${activateAssetRequest.version}")
      UpdateAtomCommand(atomId, updatedAtom, stores, user, awsConfig).process()
    } else {
      log.info(s"Cannot set active asset. No asset has that version atom=$atomId version=${activateAssetRequest.version}")
      AssetVersionConflict
    }
  }