Blame view

app/library/App/Resources/GaResource.php 1.48 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;
5166024b   Alex Savenko   extended classes
14
  use App\Mvc\ExtendedApiResource;
b38ef228   Alex Savenko   generate GaResource
15
  use PhalconRest\Api\ApiEndpoint;
5166024b   Alex Savenko   extended classes
16
  use App\Mvc\ExtendedApiEndpoint;
b38ef228   Alex Savenko   generate GaResource
17
18
  use PhalconRest\Api\ApiResource;
  
06b33f22   Alex Savenko   extended classes
19
  class GaResource extends ExtendedApiResource  {
b38ef228   Alex Savenko   generate GaResource
20
21
22
23
24
  
      public function initialize() {
  
          $this
              ->name('Google Analytics')
b38ef228   Alex Savenko   generate GaResource
25
26
27
28
29
30
31
              ->expectsJsonData()
              //->transformer(ModelTransformer::class)
              ->itemKey('ga')
              ->collectionKey('ga')
              ->deny(AclRoles::UNAUTHORIZED)
              ->handler(GaController::class)
  
5166024b   Alex Savenko   extended classes
32
              ->endpoint(ExtendedApiEndpoint::get('', 'getAction')
b38ef228   Alex Savenko   generate GaResource
33
34
                  ->allow(AclRoles::USER)
                  ->description('Returns data from Google Analytics Api')
e367fb50   Alex Savenko   dynamic dateRange
35
                  ->exampleResponse([
e495b985   Alex Savenko   docs
36
37
                      'example' => [
                          'lifehack'  => 'for example request data',
fa236f5d   Alex Savenko   doc
38
                          'view_id'     => 'GA VIEW_ID',
e495b985   Alex Savenko   docs
39
40
41
                          'start'     => '30daysAgo / 2015-03-01',
                          'end'       => 'today',
                          'metric'    => 'user,sessions',
8a4792e4   Alex Savenko   doc
42
                          'dimension' => 'source,browser'
e495b985   Alex Savenko   docs
43
44
                      ],
                      'full_docs' => 'https://developers.google.com/analytics/devguides/reporting/core/dimsmets',
e367fb50   Alex Savenko   dynamic dateRange
45
                  ])
49eee1d3   Alex Savenko   extended classes
46
                  ->exampleRequest("123")
b38ef228   Alex Savenko   generate GaResource
47
48
49
50
51
52
              )
          ;
  
      }
  
  }