Completed
Push — master ( 1dc1a5...f8d9f6 )
by Anton
10s
created

examples/Metrica/api.php (15 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
/**
3
 * User: naxel
4
 * Date: 14.02.14 15:15
5
 */
6
7
use Yandex\Metrica\Management\ManagementClient;
8
use Yandex\Metrica\Analytics\AnalyticsClient;
9
10
$errorMessage = null;
11
$status = 'ok';
12
$result = null;
13
14
//Is auth
15
if (isset($_COOKIE['yaAccessToken']) && isset($_COOKIE['yaClientId'])) {
16
    $settings = require_once '../settings.php';
17
18
    try {
19
20
        $managementClient = new ManagementClient($_COOKIE['yaAccessToken']);
21
22
        if (isset($_GET['method'])) {
23
24
            switch ($_GET['method']) {
25
26
                case 'getCounter':
27
                    if (isset($_GET['counterId']) && $_GET['counterId']) {
28
                        //GET /management/v1/counter/{counterId}
29
                        $paramsObj = new \Yandex\Metrica\Management\Models\CounterParams();
30
                        $paramsObj->setField('goals,mirrors,grants,filters,operations');
31
                        /**
32
                         * @see http://api.yandex.ru/metrika/doc/beta/management/counters/counter.xml
33
                         */
34
                        $result = $managementClient
35
                            ->counters()
36
                            ->getCounter($_GET['counterId'], $paramsObj)
37
                            ->toArray();
38
                    }
39
                    break;
40
41 View Code Duplication
                case 'getFilter':
42
                    if (isset($_GET['counterId'], $_GET['filterId']) && $_GET['counterId'] && $_GET['filterId']) {
43
                        //GET /management/v1/counter/{counterId}/filter/{filterId}
44
                        /**
45
                         * @see http://api.yandex.ru/metrika/doc/beta/management/filters/filter.xml
46
                         */
47
                        $result = $managementClient
48
                            ->filters()
49
                            ->getFilter($_GET['filterId'], $_GET['counterId'])
50
                            ->toArray();
51
                    }
52
                    break;
53
54 View Code Duplication
                case 'getGrant':
55
                    if (isset($_GET['userLogin'], $_GET['counterId']) && $_GET['userLogin'] && $_GET['counterId']) {
56
                        //GET /management/v1/counter/{counterId}/grant/{userLogin}
57
                        /**
58
                         * @see http://api.yandex.ru/metrika/doc/beta/management/grants/grantold.xml
59
                         */
60
                        $result = $managementClient
61
                            ->grants()
62
                            ->getGrant($_GET['counterId'], $_GET['userLogin'])
63
                            ->toArray();
64
                    }
65
                    break;
66
67 View Code Duplication
                case 'getOperation':
68
                    //GET /management/v1/counter/{counterId}/operation/{operationId}
69
                    /**
70
                     * @see http://api.yandex.ru/metrika/doc/beta/management/operations/operation.xml
71
                     */
72
                    if (isset($_GET['operationId'], $_GET['counterId'])
73
                        && $_GET['operationId']
74
                        && $_GET['counterId']
75
                    ) {
76
                        $result = $managementClient
77
                            ->operations()
78
                            ->getOperation($_GET['operationId'], $_GET['counterId'])
79
                            ->toArray();
80
                    }
81
                    break;
82
83
                case 'getPageViewsCount':
84
                    if (isset($_GET['counterId']) && $_GET['counterId']) {
85
                        $paramsObj = new \Yandex\Metrica\Analytics\Models\Params();
86
                        $paramsObj
87
                            ->setMetrics('ga:pageviews')
88
                            ->setStartDate('6daysAgo')
89
                            ->setEndDate('today')
90
                            ->setIds('ga:' . $_GET['counterId']);
91
92
                        $analyticsClient = new AnalyticsClient($_COOKIE['yaAccessToken']);
93
                        $response = $analyticsClient
94
                            ->ga()
95
                            ->getGaData($paramsObj);
96
                        $result = $response->getRows();
97
                        if (empty($result)) {
98
                            $result = 0;
99
                        } else {
100
                            $result = current(current($result));
101
                        }
102
                    }
103
104
                    break;
105
            }
106
        }
107
108
        if (isset($_POST['method'])) {
109
110
            switch ($_POST['method']) {
111
                case 'addCounter':
112
                    if (isset($_POST['counterSite']) && isset($_POST['counterName'])) {
113
                        //POST /counters
114
                        /**
115
                         * @see http://api.yandex.ru/metrika/doc/ref/reference/add-counter.xml
116
                         */
117
                        $counterPostRequest = new Yandex\Metrica\Management\Models\Counter();
118
                        $counterPostRequest
119
                            ->setName($_POST['counterName'])
120
                            ->setSite($_POST['counterSite']);
121
122
                        $codeOptions = new \Yandex\Metrica\Management\Models\CodeOptions();
123
                        $codeOptions
124
                            ->setAsync(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
125
                            ->setTrackHash(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
126
                            ->setVisor(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
127
                            ->setUt(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
128
                            ->setXmlSite(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
129
                            ->setInOneLine(1);
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
130
131
                        $counterPostRequest->setCodeOptions($codeOptions);
132
133
                        $result = $managementClient
134
                            ->counters()
135
                            ->addCounter($counterPostRequest)
136
                            ->toArray();
137
                    }
138
                    break;
139
140
                case 'updateCounter':
141
                    if (isset($_POST['counterSite']) && isset($_POST['counterName'])
142
                        && isset($_POST['counterId']) && $_POST['counterId']
143
                    ) {
144
                        //PUT /counter/{id}
145
                        /**
146
                         * @see http://api.yandex.ru/metrika/doc/ref/reference/edit-counter.xml
147
                         */
148
                        $params = new Yandex\Metrica\Management\Models\ExtendCounter();
149
150
                        $codeOptions = new \Yandex\Metrica\Management\Models\CodeOptions();
151
                        $codeOptions
152
                            ->setAsync(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
153
                            ->setTrackHash(0)
0 ignored issues
show
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
154
                            ->setVisor(0)
0 ignored issues
show
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
155
                            ->setUt(0)
0 ignored issues
show
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
156
                            ->setXmlSite(0)
0 ignored issues
show
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
157
                            ->setInOneLine(0);
0 ignored issues
show
0 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
158
159
                        $params->setCodeOptions($codeOptions);
160
161
                        $webvisor = new \Yandex\Metrica\Management\Models\Webvisor();
162
                        $webvisor
163
                            ->setArchEnabled(1)
0 ignored issues
show
1 is of type integer, but the function expects a boolean.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
164
                            ->setUrls('regexp:.*')
165
                            ->setArchType('load')
166
                            ->setLoadPlayerType('on_your_behalf');
167
168
                        $params->setWebvisor($webvisor);
169
170
                        if ($_POST['counterName']) {
171
                            $params->setName($_POST['counterName']);
172
                        }
173
                        if ($_POST['counterSite']) {
174
                            $params->setSite($_POST['counterSite']);
175
                        }
176
177
                        $result = $managementClient
178
                            ->counters()
179
                            ->updateCounter($_POST['counterId'], $params)
180
                            ->toArray();
181
                    }
182
                    break;
183
184 View Code Duplication
                case 'deleteCounter':
185
                    if (isset($_POST['counterId']) && $_POST['counterId']) {
186
                        //DELETE /counter/{id}
187
                        /**
188
                         * @see http://api.yandex.ru/metrika/doc/ref/reference/delete-counter.xml
189
                         */
190
                        $response = $managementClient
191
                            ->counters()
192
                            ->deleteCounter($_POST['counterId']);
193
194
195
                        if (isset($response['errors']) && $response['errors']) {
196
                            $status = 'error';
197
                            $errorMessage = $response['errors'][0]['text'];
198
199
                        } else {
200
                            $result = array(
201
                                'id' => $_POST['counterId']
202
                            );
203
                        }
204
                    }
205
                    break;
206
207 View Code Duplication
                case 'addDelegate':
208
                    if (isset($_POST['userLogin'], $_POST['createAt'], $_POST['comment']) && $_POST['userLogin']) {
209
                        //POST /management/v1/delegates
210
                        /**
211
                         * @see http://api.yandex.ru/metrika/doc/beta/management/delegates/adddelegate.xml
212
                         */
213
                        $delegateModel = new Yandex\Metrica\Management\Models\Delegate();
214
                        $delegateModel
215
                            ->setUserLogin($_POST['userLogin'])
216
                            ->setCreatedAt($_POST['createAt'])
217
                            ->setComment($_POST['comment']);
218
                        $result = $managementClient
219
                            ->delegates()
220
                            ->addDelegates($delegateModel)
0 ignored issues
show
$delegateModel is of type object<Yandex\Metrica\Management\Models\Delegate>, but the function expects a string.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
221
                            ->toArray();
222
                    }
223
                    break;
224
225 View Code Duplication
                case 'updateDelegate':
226
                    if (isset($_POST['userLogin'], $_POST['createAt'], $_POST['comment']) && $_POST['userLogin']) {
227
                        //PUT /management/v1/delegates
228
                        /**
229
                         * @see http://api.yandex.ru/metrika/doc/beta/management/delegates/updatedelegates.xml
230
                         */
231
                        $delegateModel = new Yandex\Metrica\Management\Models\Delegate();
232
                        $delegateModel
233
                            ->setUserLogin($_POST['userLogin'])
234
                            ->setCreatedAt($_POST['createAt'])
235
                            ->setComment($_POST['comment']);
236
                        $result = $managementClient
237
                            ->delegates()
238
                            ->updateDelegates($delegateModel)
0 ignored issues
show
$delegateModel is of type object<Yandex\Metrica\Management\Models\Delegate>, but the function expects a object<Yandex\Metrica\Ma...ement\Models\Delegates>.

It seems like the type of the argument is not accepted by the function/method which you are calling.

In some cases, in particular if PHP’s automatic type-juggling kicks in this might be fine. In other cases, however this might be a bug.

We suggest to add an explicit type cast like in the following example:

function acceptsInteger($int) { }

$x = '123'; // string "123"

// Instead of
acceptsInteger($x);

// we recommend to use
acceptsInteger((integer) $x);
Loading history...
239
                            ->toArray();
240
                    }
241
                    break;
242
243 View Code Duplication
                case 'deleteDelegate':
244
                    if (isset($_POST['userLogin']) && $_POST['userLogin']) {
245
                        //DELETE /management/v1/delegate/{userLogin}
246
                        /**
247
                         * @see http://api.yandex.ru/metrika/doc/beta/management/delegates/deletedelegateold.xml
248
                         */
249
                        $response = $managementClient
250
                            ->delegates()
251
                            ->deleteDelegate($_POST['userLogin']);
252
253
                        if (isset($response['errors']) && $response['errors']) {
254
                            $status = 'error';
255
                            $errorMessage = $response['errors'][0]['text'];
256
257
                        } else {
258
                            $result = array(
259
                                'id' => $_POST['userLogin']
260
                            );
261
                        }
262
                    }
263
                    break;
264
265 View Code Duplication
                case 'deleteAccount':
266
                    if (isset($_POST['userLogin']) && $_POST['userLogin']) {
267
                        //DELETE /management/v1/account/{userLogin}
268
                        /**
269
                         * @see http://api.yandex.ru/metrika/doc/beta/management/accounts/deleteaccountold.xml
270
                         */
271
                        $response = $managementClient
272
                            ->accounts()
273
                            ->deleteAccount($_POST['userLogin']);
274
275
                        if (isset($response['errors']) && $response['errors']) {
276
                            $status = 'error';
277
                            $errorMessage = $response['errors'][0]['text'];
278
279
                        } else {
280
                            $result = array(
281
                                'id' => $_POST['userLogin']
282
                            );
283
                        }
284
                    }
285
                    break;
286
287
                case 'addFilter':
288
                    if (isset($_POST['params'], $_POST['counterId']) && $_POST['params'] && $_POST['counterId']) {
289
                        parse_str($_POST['params'], $params);
290
                        $filterModel = new Yandex\Metrica\Management\Models\Filter((array)$params);
291
292
                        //POST /management/v1/counter/{counterId}/filters
293
                        /**
294
                         * @see http://api.yandex.ru/metrika/doc/beta/management/filters/addfilter.xml
295
                         */
296
                        $result = $managementClient
297
                            ->filters()
298
                            ->addFilter($_POST['counterId'], $filterModel)
299
                            ->toArray();
300
                    }
301
                    break;
302
303
                case 'updateFilter':
304
                    if (isset($_POST['params'], $_POST['counterId'], $_POST['filterId'])
305
                        && $_POST['params']
306
                        && $_POST['counterId']
307
                        && $_POST['filterId']
308
                    ) {
309
                        parse_str($_POST['params'], $params);
310
                        $filterModel = new Yandex\Metrica\Management\Models\Filter((array)$params);
311
312
                        //PUT /management/v1/counter/{counterId}/filter/{filterId}
313
                        /**
314
                         * @see http://api.yandex.ru/metrika/doc/beta/management/filters/editfilter.xml
315
                         */
316
                        $result = $managementClient
317
                            ->filters()
318
                            ->updateFilter($_POST['filterId'],$_POST['counterId'], $filterModel)
319
                            ->toArray();
320
                    }
321
                    break;
322
323 View Code Duplication
                case 'deleteFilter':
324
                    if (isset($_POST['counterId'], $_POST['filterId']) && $_POST['counterId'] && $_POST['filterId']) {
325
326
                        //DELETE /management/v1/counter/{counterId}/filter/{filterId}
327
                        /**
328
                         * @see http://api.yandex.ru/metrika/doc/beta/management/filters/deletefilter.xml
329
                         */
330
                        $response = $managementClient
331
                            ->filters()
332
                            ->deleteFilter($_POST['filterId'], $_POST['counterId']);
333
334
                        if (isset($response['errors']) && $response['errors']) {
335
                            $status = 'error';
336
                            $errorMessage = $response['errors'][0]['text'];
337
338
                        } else {
339
                            $result = array(
340
                                'id' => $_POST['filterId']
341
                            );
342
                        }
343
                    }
344
                    break;
345
346 View Code Duplication
                case 'addGrant':
347
                    if (isset($_POST['counterId'], $_POST['userLogin'], $_POST['perm'], $_POST['comment']
348
                        , $_POST['createdAt'])
349
                        && $_POST['counterId']
350
                        && $_POST['userLogin']
351
                        && $_POST['perm']
352
                    ) {
353
354
                        $grantModel = new Yandex\Metrica\Management\Models\Grant();
355
                        $grantModel
356
                            ->setUserLogin($_POST['userLogin'])
357
                            ->setPerm($_POST['perm'])
358
                            ->setComment($_POST['comment'])
359
                            ->setCreatedAt($_POST['createdAt']);
360
361
                        //POST /management/v1/counter/{counterId}/grants
362
                        /**
363
                         * @see http://api.yandex.ru/metrika/doc/beta/management/grants/addgrant.xml
364
                         */
365
                        $result = $managementClient
366
                            ->grants()
367
                            ->addGrant($_POST['counterId'], $grantModel)
368
                            ->toArray();
369
                    }
370
                    break;
371
372 View Code Duplication
                case 'updateGrant':
373
                    if (isset($_POST['counterId'], $_POST['userLogin'], $_POST['perm'], $_POST['comment']
374
                        , $_POST['createdAt'])
375
                        && $_POST['counterId']
376
                        && $_POST['userLogin']
377
                        && $_POST['perm']
378
                    ) {
379
380
                        $grantModel = new Yandex\Metrica\Management\Models\Grant();
381
                        $grantModel
382
                            ->setUserLogin($_POST['userLogin'])
383
                            ->setPerm($_POST['perm'])
384
                            ->setComment($_POST['comment'])
385
                            ->setCreatedAt($_POST['createdAt']);
386
387
                        //PUT /management/v1/counter/{counterId}/grant/{userLogin}
388
                        /**
389
                         * @see http://api.yandex.ru/metrika/doc/beta/management/grants/editgrantold.xml
390
                         */
391
                        $result = $managementClient
392
                            ->grants()
393
                            ->updateGrant($_POST['counterId'], $_POST['userLogin'], $grantModel)
394
                            ->toArray();
395
                    }
396
                    break;
397
398 View Code Duplication
                case 'deleteGrant':
399
                    if (isset($_POST['counterId'], $_POST['userLogin'])
400
                        && $_POST['counterId']
401
                        && $_POST['userLogin']
402
                    ) {
403
                        //DELETE /management/v1/counter/{counterId}/grant/{userLogin}
404
                        /**
405
                         * @see http://api.yandex.ru/metrika/doc/beta/management/grants/deletegrantold.xml
406
                         */
407
                        $response = $managementClient
408
                            ->grants()
409
                            ->deleteGrant( $_POST['counterId'], $_POST['userLogin']);
410
411
                        if (isset($response['errors']) && $response['errors']) {
412
                            $status = 'error';
413
                            $errorMessage = $response['errors'][0]['text'];
414
415
                        } else {
416
                            $result = array(
417
                                'id' => $_POST['userLogin']
418
                            );
419
                        }
420
                    }
421
                    break;
422
423
                case 'addOperation':
424
                    if (isset($_POST['counterId'], $_POST['action'], $_POST['attr'], $_POST['value'], $_POST['status'])
425
                        && $_POST['counterId']
426
                    ) {
427
428
                        $operationModel = new Yandex\Metrica\Management\Models\Operation();
429
                        $operationModel->setAction($_POST['action'])
430
                            ->setAttr($_POST['attr'])
431
                            ->setValue($_POST['value'])
432
                            ->setStatus($_POST['status']);
433
434
                        //POST /management/v1/counter/{counterId}/operations
435
                        /**
436
                         * @see http://api.yandex.ru/metrika/doc/beta/management/operations/addoperation.xml
437
                         */
438
                        $result = $managementClient
439
                            ->operations()
440
                            ->addOperation($_POST['counterId'], $operationModel)
441
                            ->toArray();
442
                    }
443
                    break;
444
445
                case 'updateOperation':
446
                    if (isset($_POST['counterId'], $_POST['operationId'], $_POST['action'], $_POST['attr']
447
                        , $_POST['value'], $_POST['status'])
448
                        && $_POST['counterId']
449
                        && $_POST['operationId']
450
                    ) {
451
452
                        $operationModel = new Yandex\Metrica\Management\Models\Operation();
453
                        $operationModel
454
                            ->setAction($_POST['action'])
455
                            ->setAttr($_POST['attr'])
456
                            ->setValue($_POST['value'])
457
                            ->setStatus($_POST['status'])
458
                            ->setId($_POST['operationId']);
459
460
                        //PUT /management/v1/counter/{counterId}/operation/{operationId}
461
                        /**
462
                         * @see http://api.yandex.ru/metrika/doc/beta/management/operations/editoperation.xml
463
                         */
464
                        $result = $managementClient
465
                            ->operations()
466
                            ->updateOperation($_POST['operationId'], $_POST['counterId'], $operationModel)
467
                            ->toArray();
468
                    }
469
                    break;
470
            }
471
        }
472
473
    } catch (\Exception $ex) {
474
        $errorMessage = $ex->getMessage();
475
        if ($errorMessage === 'PlatformNotAllowed') {
476
            $errorMessage .= '<p>Возможно, у приложения нет прав на доступ к ресурсу. Попробуйте '
477
                . '<a href="' . rtrim(str_replace($_SERVER['DOCUMENT_ROOT'], '', __DIR__), "/") . '/../OAuth/' . '">авторизироваться</a> и повторить.</p>';
478
        }
479
    }
480
}
481
482
483
echo json_encode(
484
    array(
485
        'status' => $status,
486
        'message' => $errorMessage,
487
        'result' => $result,
488
    )
489
);
490