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 41 $projects = Project::find(['user_id' => $user_id]);
42 42 foreach ($projects as $project) {
43 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 47 else {
48 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 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 57 putenv('GOOGLE_APPLICATION_CREDENTIALS=/var/www/phalcon/'.self::SECRET_JSON);
58 58 $client = new Google_Client();
... ... @@ -76,7 +76,7 @@ class GaController extends CrudResourceController {
76 76 }
77 77  
78 78 //Create the Dimensions object.
79   - if (!empty($get_dimensions)) {
  79 + if (!empty($get_dimensions) && !$chart) {
80 80 $dimensions = [];
81 81 $get_dimensions = explode(',', $get_dimensions);
82 82 foreach ($get_dimensions as $dimension) {
... ... @@ -104,13 +104,17 @@ class GaController extends CrudResourceController {
104 104 $response = $response->toSimpleObject();
105 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 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 119 $result = [];
116 120  
... ... @@ -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  
... ...