/**
  * Search caption asset items by filter, pager and free text
  * 
  * @action search
  * @param KalturaBaseEntryFilter $entryFilter
  * @param KalturaCaptionAssetItemFilter $captionAssetItemFilter
  * @param KalturaFilterPager $captionAssetItemPager
  * @return KalturaCaptionAssetItemListResponse
  */
 function searchAction(KalturaBaseEntryFilter $entryFilter = null, KalturaCaptionAssetItemFilter $captionAssetItemFilter = null, KalturaFilterPager $captionAssetItemPager = null)
 {
     if (!$captionAssetItemPager) {
         $captionAssetItemPager = new KalturaFilterPager();
     }
     if (!$captionAssetItemFilter) {
         $captionAssetItemFilter = new KalturaCaptionAssetItemFilter();
     }
     $captionAssetItemCoreFilter = new CaptionAssetItemFilter();
     $captionAssetItemFilter->toObject($captionAssetItemCoreFilter);
     if ($entryFilter) {
         $entryCoreFilter = new entryFilter();
         $entryFilter->toObject($entryCoreFilter);
         $this->addEntryAdvancedSearchFilter($captionAssetItemFilter, $entryCoreFilter);
         $entryCriteria = KalturaCriteria::create(entryPeer::OM_CLASS);
         $entryCoreFilter->attachToCriteria($entryCriteria);
         $entryCriteria->applyFilters();
         $entryIds = $entryCriteria->getFetchedIds();
         if (!$entryIds || !count($entryIds)) {
             $entryIds = array('NOT_EXIST');
         }
         $captionAssetItemCoreFilter->setEntryIdIn($entryIds);
     }
     $captionAssetItemCriteria = KalturaCriteria::create(CaptionAssetItemPeer::OM_CLASS);
     $captionAssetItemCoreFilter->attachToCriteria($captionAssetItemCriteria);
     $captionAssetItemPager->attachToCriteria($captionAssetItemCriteria);
     $dbList = CaptionAssetItemPeer::doSelect($captionAssetItemCriteria);
     $list = KalturaCaptionAssetItemArray::fromDbArray($dbList);
     $response = new KalturaCaptionAssetItemListResponse();
     $response->objects = $list;
     $response->totalCount = $captionAssetItemCriteria->getRecordsCount();
     return $response;
 }
 public function fromObject($sourceObject)
 {
     if (!$sourceObject) {
         return;
     }
     parent::fromObject($sourceObject);
     $entryFilter = $sourceObject->getEntryFilterObject();
     if ($entryFilter) {
         $this->entryFilter = new KalturaBaseEntryFilter();
         $this->entryFilter->fromObject($entryFilter);
     }
 }
Ejemplo n.º 3
0
 public function doFromObject($sourceObject, KalturaDetachedResponseProfile $responseProfile = null)
 {
     if (!$sourceObject) {
         return;
     }
     parent::doFromObject($sourceObject, $responseProfile);
     if ($this->shouldGet('entryFilter', $responseProfile)) {
         $entryFilter = $sourceObject->getEntryFilterObject();
         if ($entryFilter) {
             $this->entryFilter = new KalturaBaseEntryFilter();
             $this->entryFilter->fromObject($entryFilter);
         }
     }
 }
 function count(KalturaBaseEntryFilter $filter = null)
 {
     $kparams = array();
     if ($filter !== null) {
         $this->client->addParam($kparams, "filter", $filter->toParams());
     }
     $this->client->queueServiceActionCall("baseentry", "count", $kparams);
     if ($this->client->isMultiRequest()) {
         return null;
     }
     $resultObject = $this->client->doQueue();
     $this->client->throwExceptionIfError($resultObject);
     $this->client->validateObjectType($resultObject, "integer");
     return $resultObject;
 }
 public function getOrderByMap()
 {
     return array_merge(parent::getOrderByMap(), $this->order_by_map);
 }
Ejemplo n.º 6
0
 protected function countEntriesByFilter(KalturaBaseEntryFilter $filter = null)
 {
     myDbHelper::$use_alternative_con = myDbHelper::DB_HELPER_CONN_PROPEL3;
     if (!$filter) {
         $filter = new KalturaBaseEntryFilter();
     }
     $c = $filter->prepareEntriesCriteriaFilter();
     $c->applyFilters();
     $totalCount = $c->getRecordsCount();
     return $totalCount;
 }
 function search(KalturaBaseEntryFilter $entryFilter = null, KalturaCaptionAssetItemFilter $captionAssetItemFilter = null, KalturaFilterPager $captionAssetItemPager = null)
 {
     $kparams = array();
     if ($entryFilter !== null) {
         $this->client->addParam($kparams, "entryFilter", $entryFilter->toParams());
     }
     if ($captionAssetItemFilter !== null) {
         $this->client->addParam($kparams, "captionAssetItemFilter", $captionAssetItemFilter->toParams());
     }
     if ($captionAssetItemPager !== null) {
         $this->client->addParam($kparams, "captionAssetItemPager", $captionAssetItemPager->toParams());
     }
     $this->client->queueServiceActionCall("captionsearch_captionassetitem", "search", $kparams);
     if ($this->client->isMultiRequest()) {
         return $this->client->getMultiRequestResult();
     }
     $resultObject = $this->client->doQueue();
     $this->client->throwExceptionIfError($resultObject);
     $this->client->validateObjectType($resultObject, "KalturaCaptionAssetItemListResponse");
     return $resultObject;
 }
Ejemplo n.º 8
0
 function listAction(KalturaBaseEntryFilter $filter = null, KalturaFilterPager $pager = null)
 {
     $kparams = array();
     if ($filter !== null) {
         $this->client->addParam($kparams, "filter", $filter->toParams());
     }
     if ($pager !== null) {
         $this->client->addParam($kparams, "pager", $pager->toParams());
     }
     $this->client->queueServiceActionCall("baseentry", "list", $kparams);
     if ($this->client->isMultiRequest()) {
         return null;
     }
     $resultObject = $this->client->doQueue();
     $this->client->throwExceptionIfError($resultObject);
     $this->client->validateObjectType($resultObject, "KalturaBaseEntryListResponse");
     return $resultObject;
 }
 public function getOrderByMap()
 {
     return array_merge(parent::getOrderByMap(), self::$order_by_map);
 }
Ejemplo n.º 10
0
 /**
  * List base entries by filter with paging support.
  *
  * @action list
  * @param KalturaBaseEntryFilter $filter Entry filter
  * @param KalturaFilterPager $pager Pager
  * @return KalturaBaseEntryListResponse Wrapper for array of base entries and total count
  */
 function listAction(KalturaBaseEntryFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaBaseEntryFilter();
     }
     if (!$pager) {
         $pager = new KalturaFilterPager();
     }
     // NOTE: The following is a hack in order to make sure all responses are of type KalturaBaseEntryListResponse.
     //       The reason is that baseentry::list() is not being extended by derived classes.
     $result = $filter->getListResponse($pager, $this->getResponseProfile());
     $response = new KalturaBaseEntryListResponse();
     $response->objects = $result->objects;
     $response->totalCount = $result->totalCount;
     return $response;
 }
Ejemplo n.º 11
0
 /**
  * Search caption asset items by filter, pager and free text
  *
  * @action searchEntries
  * @param KalturaBaseEntryFilter $entryFilter
  * @param KalturaCaptionAssetItemFilter $captionAssetItemFilter
  * @param KalturaFilterPager $captionAssetItemPager
  * @return KalturaBaseEntryListResponse
  */
 public function searchEntriesAction(KalturaBaseEntryFilter $entryFilter = null, KalturaCaptionAssetItemFilter $captionAssetItemFilter = null, KalturaFilterPager $captionAssetItemPager = null)
 {
     if (!$captionAssetItemPager) {
         $captionAssetItemPager = new KalturaFilterPager();
     }
     if (!$captionAssetItemFilter) {
         $captionAssetItemFilter = new KalturaCaptionAssetItemFilter();
     }
     $captionAssetItemFilter->validatePropertyNotNull(array("contentLike", "contentMultiLikeOr", "contentMultiLikeAnd"));
     $captionAssetItemCoreFilter = new CaptionAssetItemFilter();
     $captionAssetItemFilter->toObject($captionAssetItemCoreFilter);
     $entryIdChunks = array(NULL);
     if ($entryFilter || kEntitlementUtils::getEntitlementEnforcement()) {
         $entryCoreFilter = new entryFilter();
         if ($entryFilter) {
             $entryFilter->toObject($entryCoreFilter);
         }
         $entryCoreFilter->setPartnerSearchScope($this->getPartnerId());
         $this->addEntryAdvancedSearchFilter($captionAssetItemFilter, $entryCoreFilter);
         $entryCriteria = KalturaCriteria::create(entryPeer::OM_CLASS);
         $entryCoreFilter->attachToCriteria($entryCriteria);
         $entryCriteria->setLimit(self::MAX_NUMBER_OF_ENTRIES);
         $entryCriteria->applyFilters();
         $entryIds = $entryCriteria->getFetchedIds();
         if (!$entryIds || !count($entryIds)) {
             $entryIds = array('NOT_EXIST');
         }
         $entryIdChunks = array_chunk($entryIds, self::SIZE_OF_ENTRIES_CHUNK);
     }
     $entries = array();
     $counter = 0;
     $shouldSortCaptionFiltering = $entryFilter->orderBy ? true : false;
     $captionAssetItemCriteria = KalturaCriteria::create(CaptionAssetItemPeer::OM_CLASS);
     $captionAssetItemCoreFilter->attachToCriteria($captionAssetItemCriteria);
     $captionAssetItemCriteria->setGroupByColumn('str_entry_id');
     $captionAssetItemCriteria->setSelectColumn('str_entry_id');
     foreach ($entryIdChunks as $chunk) {
         $currCriteria = clone $captionAssetItemCriteria;
         if ($chunk) {
             $currCriteria->add(CaptionAssetItemPeer::ENTRY_ID, $chunk, KalturaCriteria::IN);
         } else {
             $captionAssetItemPager->attachToCriteria($currCriteria);
         }
         $currCriteria->applyFilters();
         $currEntries = $currCriteria->getFetchedIds();
         //sorting this chunk according to results of first sphinx query
         if ($shouldSortCaptionFiltering) {
             $currEntries = array_intersect($entryIds, $currEntries);
         }
         $entries = array_merge($entries, $currEntries);
         $counter += $currCriteria->getRecordsCount();
     }
     $inputPageSize = $captionAssetItemPager->pageSize;
     $inputPageIndex = $captionAssetItemPager->pageIndex;
     //page index & size validation - no negative values & size not too big
     $pageSize = max(min($inputPageSize, baseObjectFilter::getMaxInValues()), 0);
     $pageIndex = max($captionAssetItemPager::MIN_PAGE_INDEX, $inputPageIndex) - 1;
     $firstIndex = $pageSize * $pageIndex;
     $entries = array_slice($entries, $firstIndex, $pageSize);
     $dbList = entryPeer::retrieveByPKs($entries);
     if ($shouldSortCaptionFiltering) {
         //results ids mapping
         $entriesMapping = array();
         foreach ($dbList as $item) {
             $entriesMapping[$item->getId()] = $item;
         }
         $dbList = array();
         foreach ($entries as $entryId) {
             if (isset($entriesMapping[$entryId])) {
                 $dbList[] = $entriesMapping[$entryId];
             }
         }
     }
     $list = KalturaBaseEntryArray::fromDbArray($dbList, $this->getResponseProfile());
     $response = new KalturaBaseEntryListResponse();
     $response->objects = $list;
     $response->totalCount = $counter;
     return $response;
 }
 public function toObject($object_to_fill = null, $props_to_skip = array())
 {
     $object_to_fill = parent::toObject($object_to_fill, $props_to_skip);
     if (!$object_to_fill) {
         KalturaLog::err('Cannot find object to fill');
         return null;
     }
     if (empty($this->deliveryProfileIds)) {
         $object_to_fill->setDeliveryProfileIds(array());
     } else {
         $object_to_fill->setDeliveryProfileIds(json_decode($this->deliveryProfileIds, true));
     }
     if (!$this->isNull('partnerParentId') && $this->partnerParentId > 0) {
         $parentPartnerDb = PartnerPeer::retrieveByPK($this->partnerParentId);
         if ($parentPartnerDb->getPartnerGroupType() != KalturaPartnerGroupType::GROUP && $parentPartnerDb->getPartnerGroupType() != KalturaPartnerGroupType::VAR_GROUP) {
             throw new KalturaAPIException(SystemPartnerErrors::UNABLE_TO_FORM_GROUP_ASSOCIATION, $this->partnerParentId, $parentPartnerDb->getPartnerGroupType());
         }
     }
     if (!is_null($this->permissions)) {
         foreach ($this->permissions as $permission) {
             $dbPermission = PermissionPeer::getByNameAndPartner($permission->name, array($object_to_fill->getId()));
             if ($dbPermission) {
                 $dbPermission->setStatus($permission->status);
             } else {
                 $dbPermission = new Permission();
                 $dbPermission->setType($permission->type);
                 $dbPermission->setPartnerId($object_to_fill->getId());
                 //$dbPermission->setStatus($permission->status);
                 $permission->type = null;
                 $dbPermission = $permission->toInsertableObject($dbPermission);
             }
             $dbPermission->save();
             if ($dbPermission->getStatus() == PermissionStatus::ACTIVE) {
                 $this->enablePermissionForPlugins($object_to_fill->getId(), $dbPermission->getName());
             }
         }
         //Raise template partner's conversion profiles (so far) and check whether the partner now has permissions for them.
         $this->copyMissingConversionProfiles($object_to_fill);
     }
     if (!is_null($this->limits)) {
         foreach ($this->limits as $limit) {
             $limit->apply($object_to_fill);
         }
     }
     if (!is_null($this->autoModerateEntryFilter)) {
         $dbAutoModerationEntryFilter = new entryFilter();
         $this->autoModerateEntryFilter->toObject($dbAutoModerationEntryFilter);
         $object_to_fill->setAutoModerateEntryFilter($dbAutoModerationEntryFilter);
     }
     $object_to_fill->setShouldApplyAccessControlOnEntryMetadata($this->restrictEntryByMetadata);
     return $object_to_fill;
 }
Ejemplo n.º 13
0
 /**
  * List base entries by filter with paging support.
  *
  * @action list
  * @param KalturaBaseEntryFilter $filter Entry filter
  * @param KalturaFilterPager $pager Pager
  * @return KalturaBaseEntryListResponse Wrapper for array of base entries and total count
  */
 function listAction(KalturaBaseEntryFilter $filter = null, KalturaFilterPager $pager = null)
 {
     if (!$filter) {
         $filter = new KalturaBaseEntryFilter();
     }
     if (!$pager) {
         $pager = new KalturaFilterPager();
     }
     $result = $filter->getListResponse($pager, $this->getResponseProfile());
     if ($result->totalCount == 1 && count($result->objects) == 1 && $result->objects[0]->status != KalturaEntryStatus::READY) {
         // the purpose of this is to solve a case in which a player attempts to play a non-ready entry,
         // and the request becomes cached for a long time, preventing playback even after the entry
         // becomes ready
         kApiCache::setExpiry(60);
     }
     // NOTE: The following is a hack in order to make sure all responses are of type KalturaBaseEntryListResponse.
     //       The reason is that baseentry::list() is not being extended by derived classes.
     $response = new KalturaBaseEntryListResponse();
     $response->objects = $result->objects;
     $response->totalCount = $result->totalCount;
     return $response;
 }
 public function toObject($object_to_fill = null, $props_to_skip = array())
 {
     $object_to_fill = parent::toObject($object_to_fill, $props_to_skip);
     if (!$object_to_fill) {
         KalturaLog::err('Cannot find object to fill');
         return null;
     }
     if (!$this->isNull('partnerParentId') && $this->partnerParentId > 0) {
         $parentPartnerDb = PartnerPeer::retrieveByPK($this->partnerParentId);
         if ($parentPartnerDb->getPartnerGroupType() != KalturaPartnerGroupType::GROUP && $parentPartnerDb->getPartnerGroupType() != KalturaPartnerGroupType::VAR_GROUP) {
             throw new KalturaAPIException(SystemPartnerErrors::UNABLE_TO_FORM_GROUP_ASSOCIATION, $this->partnerParentId, $parentPartnerDb->getPartnerGroupType());
         }
     }
     if (!is_null($this->permissions)) {
         foreach ($this->permissions as $permission) {
             KalturaLog::debug("partner: " . $object_to_fill->getId() . " add permissions: " . print_r($permission, true));
             $dbPermission = PermissionPeer::getByNameAndPartner($permission->name, array($object_to_fill->getId()));
             if ($dbPermission) {
                 KalturaLog::debug("add permissions: exists; set status; " . $permission->status);
                 KalturaLog::debug("db permissions:  " . print_r($dbPermission, true));
                 $dbPermission->setStatus($permission->status);
             } else {
                 KalturaLog::debug("add permissions: didn't exists");
                 $dbPermission = new Permission();
                 $dbPermission->setType($permission->type);
                 $dbPermission->setPartnerId($object_to_fill->getId());
                 //$dbPermission->setStatus($permission->status);
                 $permission->type = null;
                 $dbPermission = $permission->toInsertableObject($dbPermission);
             }
             KalturaLog::debug("add permissions: save" . print_r($dbPermission, true));
             $dbPermission->save();
         }
     }
     if (!is_null($this->limits)) {
         foreach ($this->limits as $limit) {
             $limit->apply($object_to_fill);
         }
     }
     if (!is_null($this->autoModerateEntryFilter)) {
         $dbAutoModerationEntryFilter = new entryFilter();
         $this->autoModerateEntryFilter->toObject($dbAutoModerationEntryFilter);
         $object_to_fill->setAutoModerateEntryFilter($dbAutoModerationEntryFilter);
     }
     return $object_to_fill;
 }