/** * 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); } }
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); }
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; }
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); }
/** * 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; }
/** * 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; }
/** * 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; }