/**
  * @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;
     }
 }
Exemple #2
0
 /**
  * 
  * 
  * @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;
 }