/** * @action getReport * @param KalturaLiveReportType $reportType * @param KalturaLiveReportInputFilter $filter * @param KalturaFilterPager $pager * @return KalturaLiveStatsListResponse */ public function getReportAction($reportType, KalturaLiveReportInputFilter $filter = null, KalturaFilterPager $pager = null) { if (is_null($filter)) { $filter = new KalturaLiveReportInputFilter(); } if (is_null($pager)) { $pager = new KalturaFilterPager(); } $client = new WSLiveReportsClient(); $wsFilter = $filter->getWSObject(); $wsFilter->partnerId = kCurrentContext::getCurrentPartnerId(); $wsPager = new WSLiveReportInputPager($pager->pageSize, $pager->pageIndex); switch ($reportType) { case KalturaLiveReportType::ENTRY_GEO_TIME_LINE: case KalturaLiveReportType::ENTRY_SYNDICATION_TOTAL: return $this->requestClient($client, $reportType, $wsFilter, $wsPager); case KalturaLiveReportType::PARTNER_TOTAL: if ($filter->live && empty($wsFilter->entryIds)) { $entryIds = $this->getAllLiveEntriesLiveNow(); if (empty($entryIds)) { $response = new KalturaLiveStatsListResponse(); $response->totalCount = 1; $response->objects = array(); $response->objects[] = new KalturaLiveStats(); return $response; } $wsFilter->entryIds = $entryIds; } return $this->requestClient($client, $reportType, $wsFilter, $wsPager); case KalturaLiveReportType::ENTRY_TOTAL: $totalCount = null; if (!$filter->live && empty($wsFilter->entryIds)) { list($entryIds, $totalCount) = $this->getLiveEntries($client, kCurrentContext::getCurrentPartnerId(), $pager); if (empty($entryIds)) { return new KalturaLiveStatsListResponse(); } $wsFilter->entryIds = implode(",", $entryIds); } /** @var KalturaLiveStatsListResponse */ $result = $this->requestClient($client, $reportType, $wsFilter, $wsPager); if ($totalCount) { $result->totalCount = $totalCount; } if ($entryIds) { $this->sortResultByEntryIds($result, $entryIds); } return $result; } }
/** * * * @param string $reportType * @param KalturaLiveReportInputFilter $filter * @param KalturaFilterPager $pager * @return KalturaLiveStatsListResponse */ function getReport($reportType, KalturaLiveReportInputFilter $filter = null, KalturaFilterPager $pager = null) { $kparams = array(); $this->client->addParam($kparams, "reportType", $reportType); if ($filter !== null) { $this->client->addParam($kparams, "filter", $filter->toParams()); } if ($pager !== null) { $this->client->addParam($kparams, "pager", $pager->toParams()); } $this->client->queueServiceActionCall("livereports", "getReport", $kparams); if ($this->client->isMultiRequest()) { return $this->client->getMultiRequestResult(); } $resultObject = $this->client->doQueue(); $this->client->throwExceptionIfError($resultObject); $this->client->validateObjectType($resultObject, "KalturaLiveStatsListResponse"); return $resultObject; }