From 129bec7c5f22cdbe00dd9aad83da154356b3b5d2 Mon Sep 17 00:00:00 2001 From: Alex Date: Fri, 17 Feb 2017 21:47:10 +0200 Subject: [PATCH] ga output --- app/library/App/Controllers/GaController.php | 82 +++++++++++++++++++++++++++++++++++++++++++--------------------------------------- 1 file changed, 43 insertions(+), 39 deletions(-) diff --git a/app/library/App/Controllers/GaController.php b/app/library/App/Controllers/GaController.php index 04a8fd7..8d31558 100644 --- a/app/library/App/Controllers/GaController.php +++ b/app/library/App/Controllers/GaController.php @@ -28,11 +28,49 @@ class GaController extends CrudResourceController { $view_id = $this->request->get('view_id') ?? '119240817'; $get_metrics = $this->request->get('metric') ?? 'users'; + $get_dimensions = $this->request->get('dimension'); $get_start_date = $this->request->get('start') ?? '30daysAgo'; $get_end_date = $this->request->get('end') ?? 'today'; - $get_dimensions = $this->request->get('dimension'); + return $this->sendGaRequest($view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date); + + } + + public function printResults($reports) { + $res = ''; + for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { + $report = $reports[ $reportIndex ]; + $header = $report->getColumnHeader(); + $dimensionHeaders = $header->getDimensions(); + $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); + $rows = $report->getData()->getRows(); + + for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { + $row = $rows[ $rowIndex ]; + $dimensions = $row->getDimensions(); + $metrics = $row->getMetrics(); + for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { + print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); + } + + for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) { + $entry = $metricHeaders[$j]; + $values = $metrics[$j]; + //print("Metric type: " . $entry->getType() . "\n" ); + for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { + $value = $values->getValues()[ $valueIndex ]; + $res .= "" . $entry->getName() . ": " . $value . '
'; + } + } + } + } + + return $res; + } + + public function sendGaRequest($view, $get_metrics, $get_dimensions, $start, $end) { + putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON); $client = new Google_Client(); $client->useApplicationDefaultCredentials(); @@ -41,8 +79,8 @@ class GaController extends CrudResourceController { // Создание объекта DateRange. $dateRange = new Google_Service_AnalyticsReporting_DateRange(); - $dateRange->setStartDate($get_start_date); - $dateRange->setEndDate($get_end_date); + $dateRange->setStartDate($start); + $dateRange->setEndDate($end); // Создание объекта Metrics. $metrics = []; @@ -67,7 +105,7 @@ class GaController extends CrudResourceController { // Создание объекта ReportRequest. $request = new Google_Service_AnalyticsReporting_ReportRequest(); - $request->setViewId($view_id); + $request->setViewId($view); $request->setDateRanges($dateRange); if (!empty($dimensions)) { $request->setDimensions(array($dimensions)); @@ -84,7 +122,7 @@ class GaController extends CrudResourceController { $response = $response->reports[0]['data']['rows']; $result = []; - $project = Project::findFirst(['ga_view_id' => $view_id]); + $project = Project::findFirst(['ga_view_id' => $view]); $result['name'] = $project->name; foreach ($response as $item) { @@ -104,38 +142,4 @@ class GaController extends CrudResourceController { return ($result); } - - public function printResults($reports) { - $res = ''; - for ( $reportIndex = 0; $reportIndex < count( $reports ); $reportIndex++ ) { - $report = $reports[ $reportIndex ]; - $header = $report->getColumnHeader(); - $dimensionHeaders = $header->getDimensions(); - $metricHeaders = $header->getMetricHeader()->getMetricHeaderEntries(); - $rows = $report->getData()->getRows(); - - for ( $rowIndex = 0; $rowIndex < count($rows); $rowIndex++) { - $row = $rows[ $rowIndex ]; - $dimensions = $row->getDimensions(); - $metrics = $row->getMetrics(); - for ($i = 0; $i < count($dimensionHeaders) && $i < count($dimensions); $i++) { - print($dimensionHeaders[$i] . ": " . $dimensions[$i] . "\n"); - } - - for ($j = 0; $j < count( $metricHeaders ) && $j < count( $metrics ); $j++) { - $entry = $metricHeaders[$j]; - $values = $metrics[$j]; - //print("Metric type: " . $entry->getType() . "\n" ); - for ( $valueIndex = 0; $valueIndex < count( $values->getValues() ); $valueIndex++ ) { - $value = $values->getValues()[ $valueIndex ]; - $res .= "" . $entry->getName() . ": " . $value . '
'; - } - } - } - } - - return $res; - } - - } \ No newline at end of file -- libgit2 0.21.4