示例#1
0
 /**
  * @Route("/report", name="report")
  * @Template()
  */
 public function reportAction(Request $request)
 {
     $reportingService = $this->get('intracto_secret_santa.reporting');
     $pools = $reportingService->getPools();
     $options = new AnalyticsOptions();
     $options->loadFromRequest($request);
     $data = array('pools' => $pools, 'options' => $options);
     try {
         $data['analytics'] = $reportingService->getAnalytics($options);
     } catch (\Exception $e) {
         $translator = $this->get('translator');
         $this->addFlash('error', $translator->trans('flashes.analytics.invalid_data'));
     }
     return $data;
 }
示例#2
0
 public function getAnalytics(AnalyticsOptions $options)
 {
     $cachingId = $options->uniqueCachingString();
     if ($this->cache->contains($cachingId)) {
         return unserialize($this->cache->fetch($cachingId));
     }
     $ga = new GApi($this->ga_email, $this->ga_password);
     $ga->requestReportData($this->ga_profile_id, $options->getDimensions(), $options->getMetrics(), $options->getSortMetric(), $options->getFilter(), $options->getStartDate(), $options->getEndDate(), $options->getStartIndex(), $options->getMaxResults());
     $results = array('totals' => $ga->getVisits());
     foreach ($ga->getResults() as $item) {
         $results[$options->getDimension()][(string) $item] = $item->getVisits();
     }
     $this->cache->save($cachingId, serialize($results), 3600);
     return $results;
 }