/** * Update Syndication Feed by ID * * @action update * @param string $id * @param KalturaBaseSyndicationFeed $syndicationFeed * @return KalturaBaseSyndicationFeed * @throws KalturaErrors::INVALID_FEED_ID */ public function updateAction($id, KalturaBaseSyndicationFeed $syndicationFeed) { $syndicationFeedDB = syndicationFeedPeer::retrieveByPK($id); if (!$syndicationFeedDB) { throw new KalturaAPIException(KalturaErrors::INVALID_FEED_ID, $id); } $syndicationFeed->validateStorageId($this->getPartnerId()); $syndicationFeed->toUpdatableObject($syndicationFeedDB, array('type')); if ($syndicationFeed instanceof KalturaGenericXsltSyndicationFeed && $syndicationFeed->xslt != null) { if (!$syndicationFeedDB instanceof genericSyndicationFeed) { throw new KalturaAPIException(KalturaErrors::INVALID_FEED_TYPE, get_class($syndicationFeedDB)); } $syndicationFeedDB->incrementVersion(); } $syndicationFeedDB->save(); if ($syndicationFeed instanceof KalturaGenericXsltSyndicationFeed && $syndicationFeed->xslt != null) { $key = $syndicationFeedDB->getSyncKey(genericSyndicationFeed::FILE_SYNC_SYNDICATION_FEED_XSLT); kFileSyncUtils::file_put_contents($key, $syndicationFeed->xslt); } $syndicationFeed->type = null; $syndicationFeed = KalturaSyndicationFeedFactory::getInstanceByType($syndicationFeedDB->getType()); $syndicationFeed->fromObject($syndicationFeedDB, $this->getResponseProfile()); return $syndicationFeed; }