GaResource.php 3.04 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()
            ->itemKey('ga')
            ->collectionKey('ga')
            ->deny(AclRoles::UNAUTHORIZED)
            ->handler(GaController::class)

            ->endpoint(ApiEndpoint::factory('', '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"
                ])
                ->paramsDescription([
                    'get params' => [
                        'required params' => [
                            'metric'    => 'string(метрика Google, линк в описании запроса)',
                            'dimension' => 'string(размерность Google, линк в описании запроса)',
                            'start'     => 'ГГГГ-ММ-ДД/NdaysAgo, где N – целое положительное число(дата начала загрузки данных)',
                            'end'       => 'ГГГГ-ММ-ДД/NdaysAgo, где N – целое положительное число(дата конца загрузки данных)'
                        ],
                        'optional params' => [
                            'user_id'       => 'integer(id пользователя в системе)',
                            'view_id'       => 'integer(id представления проэкта с гугл аналитики)',
                            'chart'         => 'boolean(Задает структуру возвращаемых данных(true для графиков))',
                            'filter'        => 'expression(https://developers.google.com/analytics/devguides/reporting/core/v3/reference#filters)',
                            'sort'          => 'string(параметр сортировки, metric либо dimension)',
                            'sort_type'     => 'enum(ans, desc)',
                            'max_result'    => 'integer(максимальное число строк в результате, по умолчанию 50,000)',
                        ]
                    ]
                ])
            )
        ;

    }

}