/** * Update content of thumbnail asset * * @action setContent * @param string $id * @param KalturaContentResource $contentResource * @return KalturaThumbAsset * @throws KalturaErrors::THUMB_ASSET_ID_NOT_FOUND * @throws KalturaErrors::UPLOAD_TOKEN_INVALID_STATUS_FOR_ADD_ENTRY * @throws KalturaErrors::UPLOADED_FILE_NOT_FOUND_BY_TOKEN * @throws KalturaErrors::RECORDED_WEBCAM_FILE_NOT_FOUND * @throws KalturaErrors::THUMB_ASSET_ID_NOT_FOUND * @throws KalturaErrors::STORAGE_PROFILE_ID_NOT_FOUND * @throws KalturaErrors::RESOURCE_TYPE_NOT_SUPPORTED * @validateUser asset::entry id edit */ function setContentAction($id, KalturaContentResource $contentResource) { $dbThumbAsset = assetPeer::retrieveById($id); if (!$dbThumbAsset || !$dbThumbAsset instanceof thumbAsset) { throw new KalturaAPIException(KalturaErrors::THUMB_ASSET_ID_NOT_FOUND, $id); } $dbEntry = $dbThumbAsset->getentry(); if (!$dbEntry) { throw new KalturaAPIException(KalturaErrors::ENTRY_ID_NOT_FOUND, $dbThumbAsset->getEntryId()); } $previousStatus = $dbThumbAsset->getStatus(); $contentResource->validateEntry($dbThumbAsset->getentry()); $contentResource->validateAsset($dbThumbAsset); $kContentResource = $contentResource->toObject(); $this->attachContentResource($dbThumbAsset, $kContentResource); $contentResource->entryHandled($dbThumbAsset->getentry()); kEventsManager::raiseEvent(new kObjectDataChangedEvent($dbThumbAsset)); $newStatuses = array(thumbAsset::ASSET_STATUS_READY, thumbAsset::ASSET_STATUS_VALIDATING, thumbAsset::ASSET_STATUS_TEMP); if ($previousStatus == thumbAsset::ASSET_STATUS_QUEUED && in_array($dbThumbAsset->getStatus(), $newStatuses)) { kEventsManager::raiseEvent(new kObjectAddedEvent($dbThumbAsset)); } $thumbAssetsCount = assetPeer::countThumbnailsByEntryId($dbThumbAsset->getEntryId()); $defaultThumbKey = $dbEntry->getSyncKey(entry::FILE_SYNC_ENTRY_SUB_TYPE_THUMB); //If the thums has the default tag or the entry is in no content and this is the first thumb if ($dbEntry->getCreateThumb() && ($dbThumbAsset->hasTag(thumbParams::TAG_DEFAULT_THUMB) || $dbEntry->getStatus() == KalturaEntryStatus::NO_CONTENT && $thumbAssetsCount == 1 && !kFileSyncUtils::fileSync_exists($defaultThumbKey))) { $this->setAsDefaultAction($dbThumbAsset->getId()); } $thumbAsset = new KalturaThumbAsset(); $thumbAsset->fromObject($dbThumbAsset); return $thumbAsset; }