/** * Update exisiting delivery * * @action update * @param string $id * @param KalturaDeliveryProfile $delivery * @return KalturaDeliveryProfile */ function updateAction($id, KalturaDeliveryProfile $delivery) { DeliveryProfilePeer::setUseCriteriaFilter(false); $dbDelivery = DeliveryProfilePeer::retrieveByPK($id); DeliveryProfilePeer::setUseCriteriaFilter(true); if (!$dbDelivery) { throw new KalturaAPIException(KalturaErrors::DELIVERY_ID_NOT_FOUND, $id); } // Don't allow to update default delivery profiles from the outside if ($dbDelivery->getIsDefault()) { throw new KalturaAPIException(KalturaErrors::DELIVERY_UPDATE_ISNT_ALLOWED, $id); } $delivery->toUpdatableObject($dbDelivery); $dbDelivery->save(); $delivery = KalturaDeliveryProfileFactory::getDeliveryProfileInstanceByType($dbDelivery->getType()); $delivery->fromObject($dbDelivery, $this->getResponseProfile()); return $delivery; }