GaResource.php 2.56 KB
<?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;
use PhalconRest\Api\ApiEndpoint;
use PhalconRest\Api\ApiResource;

class GaResource extends ApiResource   {

    public function initialize() {

        $this
            ->name('Google Analytics')
            ->expectsJsonData()
            //->transformer(ModelTransformer::class)
            ->itemKey('ga')
            ->collectionKey('ga')
            ->deny(AclRoles::UNAUTHORIZED)
            ->handler(GaController::class)

            ->endpoint(ApiEndpoint::get('', 'getAction')
                ->allow(AclRoles::USER)
                ->description('Returns data from Google Analytics Api. https://developers.google.com/analytics/devguides/reporting/core/dimsmets')
                ->exampleResponse([
                    'reports' => [
                        'columnHeader'  => [
                            'metricHeaderEntries' => [
                                'name' => 'ga:users',
                                'type' => 'INTEGER'
                            ]
                        ],
                        'data'     => [
                            'rows' => [
                                'metrics' => [
                                    'values' => '777'
                                ],
                            ],
                            'totals' => [
                                'values' => '777'
                            ],
                            'rowCount' => '1',
                            'minimums' => [
                                'values' => '777'
                            ],
                            'maximums' => [
                                'values' => '777'
                            ],
                        ]
                    ],
                ])
                ->exampleRequest([
                    'get params' => [
                        'required' => [],
                        'optional' => [
                            'view_id'     => 'GA VIEW_ID',
                            'start'     => '30daysAgo / 2015-03-01',
                            'end'       => 'today',
                            'metric'    => 'user,sessions',
                            'dimension' => 'source,browser'
                        ]
                    ],
                    'summary' => 'http://test-30.artweb.com.ua/ga?view_id=119240817&metric=user,sessions&dimension=source,browser'
                ])
            )
        ;

    }

}