Commit 129bec7c5f22cdbe00dd9aad83da154356b3b5d2

Authored by Alex Savenko
1 parent a941da22

ga output

Showing 1 changed file with 43 additions and 39 deletions   Show diff stats
app/library/App/Controllers/GaController.php
... ... @@ -28,11 +28,49 @@ class GaController extends CrudResourceController {
28 28  
29 29 $view_id = $this->request->get('view_id') ?? '119240817';
30 30 $get_metrics = $this->request->get('metric') ?? 'users';
  31 + $get_dimensions = $this->request->get('dimension');
31 32 $get_start_date = $this->request->get('start') ?? '30daysAgo';
32 33 $get_end_date = $this->request->get('end') ?? 'today';
33   - $get_dimensions = $this->request->get('dimension');
34 34  
35 35  
  36 + return $this->sendGaRequest($view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date);
  37 +
  38 + }
  39 +
  40 + public function printResults($reports) {
  41 + $res = '';
  42 + for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
  43 + $report = $reports[ $reportIndex ];
  44 + $header = $report->getColumnHeader();
  45 + $dimensionHeaders = $header->getDimensions();
  46 + $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
  47 + $rows = $report->getData()->getRows();
  48 +
  49 + for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
  50 + $row = $rows[ $rowIndex ];
  51 + $dimensions = $row->getDimensions();
  52 + $metrics = $row->getMetrics();
  53 + for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
  54 + print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n");
  55 + }
  56 +
  57 + for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) {
  58 + $entry = $metricHeaders[$j];
  59 + $values = $metrics[$j];
  60 + //print("Metric type: " . $entry->getType() . "\n" );
  61 + for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) {
  62 + $value = $values->getValues()[ $valueIndex ];
  63 + $res .= "<b>" . $entry->getName() . "</b>: " . $value . '<br/>';
  64 + }
  65 + }
  66 + }
  67 + }
  68 +
  69 + return $res;
  70 + }
  71 +
  72 + public function sendGaRequest($view, $get_metrics, $get_dimensions, $start, $end) {
  73 +
36 74 putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON);
37 75 $client = new Google_Client();
38 76 $client->useApplicationDefaultCredentials();
... ... @@ -41,8 +79,8 @@ class GaController extends CrudResourceController {
41 79  
42 80 // Создание объекта DateRange.
43 81 $dateRange = new Google_Service_AnalyticsReporting_DateRange();
44   - $dateRange->setStartDate($get_start_date);
45   - $dateRange->setEndDate($get_end_date);
  82 + $dateRange->setStartDate($start);
  83 + $dateRange->setEndDate($end);
46 84  
47 85 // Создание объекта Metrics.
48 86 $metrics = [];
... ... @@ -67,7 +105,7 @@ class GaController extends CrudResourceController {
67 105  
68 106 // Создание объекта ReportRequest.
69 107 $request = new Google_Service_AnalyticsReporting_ReportRequest();
70   - $request->setViewId($view_id);
  108 + $request->setViewId($view);
71 109 $request->setDateRanges($dateRange);
72 110 if (!empty($dimensions)) {
73 111 $request->setDimensions(array($dimensions));
... ... @@ -84,7 +122,7 @@ class GaController extends CrudResourceController {
84 122 $response = $response->reports[0]['data']['rows'];
85 123  
86 124 $result = [];
87   - $project = Project::findFirst(['ga_view_id' => $view_id]);
  125 + $project = Project::findFirst(['ga_view_id' => $view]);
88 126 $result['name'] = $project->name;
89 127  
90 128 foreach ($response as $item) {
... ... @@ -104,38 +142,4 @@ class GaController extends CrudResourceController {
104 142 return ($result);
105 143  
106 144 }
107   -
108   - public function printResults($reports) {
109   - $res = '';
110   - for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) {
111   - $report = $reports[ $reportIndex ];
112   - $header = $report->getColumnHeader();
113   - $dimensionHeaders = $header->getDimensions();
114   - $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries();
115   - $rows = $report->getData()->getRows();
116   -
117   - for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) {
118   - $row = $rows[ $rowIndex ];
119   - $dimensions = $row->getDimensions();
120   - $metrics = $row->getMetrics();
121   - for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) {
122   - print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n");
123   - }
124   -
125   - for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) {
126   - $entry = $metricHeaders[$j];
127   - $values = $metrics[$j];
128   - //print("Metric type: " . $entry->getType() . "\n" );
129   - for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) {
130   - $value = $values->getValues()[ $valueIndex ];
131   - $res .= "<b>" . $entry->getName() . "</b>: " . $value . '<br/>';
132   - }
133   - }
134   - }
135   - }
136   -
137   - return $res;
138   - }
139   -
140   -
141 145 }
142 146 \ No newline at end of file
... ...