GaResource.php 2.02 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([
                      "name"            => "rukzachok.com.ua",
                      "(Other)"         => "646",
                      "Direct"          => "482",
                      "Display"         => "134",
                      "Organic Search"  => "2278",
                      "Paid Search"     => "2989",
                      "Referral"        => "128",
                      "Social"          => "29"
                ])
                ->exampleRequest([
                    'get params' => [
                        'required' => [],
                        'optional' => [
                            'user_id'   => '1',
                            'view_id'   => 'GA VIEW_ID',
                            'start'     => '30daysAgo / 2015-03-01',
                            'end'       => 'today',
                            'metric'    => 'users,sessions',
                            'dimension' => 'source,browser'
                        ]
                    ],
                    'summary' => 'http://test-30.artweb.com.ua/ga?view_id=119240817&metric=users,sessions&dimension=source,browser'
                ])
            )
        ;

    }

}