From 7e1d4fa37ea30c5b611db1119c0a280ef3ab6630 Mon Sep 17 00:00:00 2001 From: Alex Date: Mon, 20 Feb 2017 18:05:11 +0200 Subject: [PATCH] ga output --- app/library/App/Controllers/GaController.php | 38 ++++++++++++++++++++++++++++++++------ 1 file changed, 32 insertions(+), 6 deletions(-) diff --git a/app/library/App/Controllers/GaController.php b/app/library/App/Controllers/GaController.php index ad5b60d..ad35ec1 100644 --- a/app/library/App/Controllers/GaController.php +++ b/app/library/App/Controllers/GaController.php @@ -41,18 +41,18 @@ class GaController extends CrudResourceController { $projects = Project::find(['user_id' => $user_id]); foreach ($projects as $project) { $view_id = (string)$project->ga_view_id; - $result[] = $this->sendGaRequest($project->name, $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date); + $result[] = $this->sendGaRequest($project->name, $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date, $chart); } } else { $project = Project::findFirst(['ga_view_id' => $view_id]); - $result = $this->sendGaRequest($project->name , $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date); + $result = $this->sendGaRequest($project->name , $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date, $chart); } return $result; } - public function sendGaRequest($project_name, $view, $get_metrics, $get_dimensions, $start, $end) { + public function sendGaRequest($project_name, $view, $get_metrics, $get_dimensions, $start, $end, $chart = false) { putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON); $client = new Google_Client(); @@ -76,7 +76,7 @@ class GaController extends CrudResourceController { } //Create the Dimensions object. - if (!empty($get_dimensions)) { + if (!empty($get_dimensions) && !$chart) { $dimensions = []; $get_dimensions = explode(',', $get_dimensions); foreach ($get_dimensions as $dimension) { @@ -104,13 +104,17 @@ class GaController extends CrudResourceController { $response = $response->toSimpleObject(); $response = $response->reports[0]['data']['rows']; - $result = self::responseTransform($response, $project_name); + if ($chart) { + $result = self::responseChartTransform($response, $project_name); + } else { + $result = self::responseDataTransform($response, $project_name); + } return ($result); } - public static function responseTransform(array $response, $project_name) { + public static function responseDataTransform(array $response, $project_name) { $result = []; @@ -134,6 +138,28 @@ class GaController extends CrudResourceController { } + public static function responseChartTransform(array $response, $project_name) { + + $result = []; + + foreach ($response as $item) { + + $metric_val = $item['metrics'][0]['values']; + $result['name'] = $project_name; + + if (count($metric_val) > 1) { + for ($i = 0; $i < count($metric_val); $i++) { + $result['data'][] = $metric_val[$i]; + } + } else { + $result['data'] = $metric_val[0]; + } + } + + return $result; + + } + -- libgit2 0.21.4