Blame view

app/library/App/Resources/GaResource.php 2.43 KB
b38ef228   Alex Savenko   generate GaResource
1
2
3
4
5
6
7
8
9
10
11
12
13
  <?php
  /**
   * Created by PhpStorm.
   * User: Alex Savenko
   * Date: 09.02.2017
   * Time: 18:02
   */
  
  namespace App\Resources;
  
  
  use App\Constants\AclRoles;
  use App\Controllers\GaController;
8104a88d   Alex Savenko   extended classes
14
15
  use PhalconRest\Api\ApiEndpoint;
  use PhalconRest\Api\ApiResource;
b38ef228   Alex Savenko   generate GaResource
16
  
8104a88d   Alex Savenko   extended classes
17
  class GaResource extends ApiResource   {
b38ef228   Alex Savenko   generate GaResource
18
19
20
21
22
  
      public function initialize() {
  
          $this
              ->name('Google Analytics')
b38ef228   Alex Savenko   generate GaResource
23
24
25
26
27
28
29
              ->expectsJsonData()
              //->transformer(ModelTransformer::class)
              ->itemKey('ga')
              ->collectionKey('ga')
              ->deny(AclRoles::UNAUTHORIZED)
              ->handler(GaController::class)
  
8104a88d   Alex Savenko   extended classes
30
              ->endpoint(ApiEndpoint::get('', 'getAction')
b38ef228   Alex Savenko   generate GaResource
31
                  ->allow(AclRoles::USER)
fbd4cc5f   Alex Savenko   docs example requ...
32
                  ->description('Returns data from Google Analytics Api. https://developers.google.com/analytics/devguides/reporting/core/dimsmets')
e367fb50   Alex Savenko   dynamic dateRange
33
                  ->exampleResponse([
fbd4cc5f   Alex Savenko   docs example requ...
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
                      'reports' => [
                          'columnHeader'  => [
                              'metricHeaderEntries' => [
                                  'name' => 'ga:users',
                                  'type' => 'INTEGER'
                              ]
                          ],
                          'data'     => [
                              'rows' => [
                                  'metrics' => [
                                      'values' => '777'
                                  ],
                              ],
                              'totals' => [
                                  'values' => '777'
                              ],
                              'rowCount' => '1',
                              'minimums' => [
                                  'values' => '777'
                              ],
                              'maximums' => [
                                  'values' => '777'
                              ],
                          ]
e495b985   Alex Savenko   docs
58
                      ],
e367fb50   Alex Savenko   dynamic dateRange
59
                  ])
46647ae2   Alex Savenko   docs example requ...
60
                  ->exampleRequest([
fbd4cc5f   Alex Savenko   docs example requ...
61
                      'get params' => [
d34fce51   Alex Savenko   docs example requ...
62
63
64
65
66
67
68
69
                          'required' => [],
                          'optional' => [
                              'view_id'     => 'GA VIEW_ID',
                              'start'     => '30daysAgo / 2015-03-01',
                              'end'       => 'today',
                              'metric'    => 'user,sessions',
                              'dimension' => 'source,browser'
                          ]
46647ae2   Alex Savenko   docs example requ...
70
71
                      ]
                  ])
b38ef228   Alex Savenko   generate GaResource
72
73
74
75
76
77
              )
          ;
  
      }
  
  }