Commit 7e1d4fa37ea30c5b611db1119c0a280ef3ab6630

Authored by Alex Savenko
1 parent 5937dcc7

ga output

Showing 1 changed file with 32 additions and 6 deletions   Show diff stats
app/library/App/Controllers/GaController.php
@@ -41,18 +41,18 @@ class GaController extends CrudResourceController { @@ -41,18 +41,18 @@ class GaController extends CrudResourceController {
41 $projects = Project::find(['user_id' => $user_id]); 41 $projects = Project::find(['user_id' => $user_id]);
42 foreach ($projects as $project) { 42 foreach ($projects as $project) {
43 $view_id = (string)$project->ga_view_id; 43 $view_id = (string)$project->ga_view_id;
44 - $result[] = $this->sendGaRequest($project->name, $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date); 44 + $result[] = $this->sendGaRequest($project->name, $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date, $chart);
45 } 45 }
46 } 46 }
47 else { 47 else {
48 $project = Project::findFirst(['ga_view_id' => $view_id]); 48 $project = Project::findFirst(['ga_view_id' => $view_id]);
49 - $result = $this->sendGaRequest($project->name , $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date); 49 + $result = $this->sendGaRequest($project->name , $view_id, $get_metrics, $get_dimensions, $get_start_date, $get_end_date, $chart);
50 } 50 }
51 return $result; 51 return $result;
52 52
53 } 53 }
54 54
55 - public function sendGaRequest($project_name, $view, $get_metrics, $get_dimensions, $start, $end) { 55 + public function sendGaRequest($project_name, $view, $get_metrics, $get_dimensions, $start, $end, $chart = false) {
56 56
57 putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON); 57 putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON);
58 $client = new Google_Client(); 58 $client = new Google_Client();
@@ -76,7 +76,7 @@ class GaController extends CrudResourceController { @@ -76,7 +76,7 @@ class GaController extends CrudResourceController {
76 } 76 }
77 77
78 //Create the Dimensions object. 78 //Create the Dimensions object.
79 - if (!empty($get_dimensions)) { 79 + if (!empty($get_dimensions) && !$chart) {
80 $dimensions = []; 80 $dimensions = [];
81 $get_dimensions = explode(',', $get_dimensions); 81 $get_dimensions = explode(',', $get_dimensions);
82 foreach ($get_dimensions as $dimension) { 82 foreach ($get_dimensions as $dimension) {
@@ -104,13 +104,17 @@ class GaController extends CrudResourceController { @@ -104,13 +104,17 @@ class GaController extends CrudResourceController {
104 $response = $response->toSimpleObject(); 104 $response = $response->toSimpleObject();
105 $response = $response->reports[0]['data']['rows']; 105 $response = $response->reports[0]['data']['rows'];
106 106
107 - $result = self::responseTransform($response, $project_name); 107 + if ($chart) {
  108 + $result = self::responseChartTransform($response, $project_name);
  109 + } else {
  110 + $result = self::responseDataTransform($response, $project_name);
  111 + }
108 112
109 return ($result); 113 return ($result);
110 114
111 } 115 }
112 116
113 - public static function responseTransform(array $response, $project_name) { 117 + public static function responseDataTransform(array $response, $project_name) {
114 118
115 $result = []; 119 $result = [];
116 120
@@ -134,6 +138,28 @@ class GaController extends CrudResourceController { @@ -134,6 +138,28 @@ class GaController extends CrudResourceController {
134 138
135 } 139 }
136 140
  141 + public static function responseChartTransform(array $response, $project_name) {
  142 +
  143 + $result = [];
  144 +
  145 + foreach ($response as $item) {
  146 +
  147 + $metric_val = $item['metrics'][0]['values'];
  148 + $result['name'] = $project_name;
  149 +
  150 + if (count($metric_val) > 1) {
  151 + for ($i = 0; $i < count($metric_val); $i++) {
  152 + $result['data'][] = $metric_val[$i];
  153 + }
  154 + } else {
  155 + $result['data'] = $metric_val[0];
  156 + }
  157 + }
  158 +
  159 + return $result;
  160 +
  161 + }
  162 +
137 163
138 164
139 165