GaResource.php
3.04 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
<?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)',
]
]
])
)
;
}
}