Completed
Branch v4.x (712f3d)
by Dmitry
04:56
created

AgencyClients   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 69
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 1

Importance

Changes 0
Metric Value
dl 0
loc 69
rs 10
c 0
b 0
f 0
wmc 3
lcom 1
cbo 1

4 Methods

Rating   Name   Duplication   Size   Complexity  
A get() 0 7 1
A add() 0 9 1
A update() 0 9 1
A getHeaders() 0 8 1
1
<?php
2
declare(strict_types=1);
3
4
namespace Gladyshev\Yandex\Direct\Service;
5
6
use function Gladyshev\Yandex\Direct\get_param_names;
7
8
final class AgencyClients extends \Gladyshev\Yandex\Direct\AbstractService
9
{
10
    /**
11
     * Возвращает список рекламодателей — клиентов агентства,
12
     * их параметры и настройки главных представителей рекламодателя.
13
     *
14
     * @param $SelectionCriteria
15
     * @param $FieldNames
16
     * @param $Page
17
     * @return array
18
     * @throws \Throwable
19
     *
20
     * @see https://tech.yandex.ru/direct/doc/ref-v5/agencyclients/get-docpage
21
     */
22
    public function get($SelectionCriteria, $FieldNames, $Page = null)
23
    {
24
        return $this->call([
25
            'method' => 'get',
26
            'params' => array_filter(compact(get_param_names(__METHOD__)))
27
        ]);
28
    }
29
30
    /**
31
     * Регистрирует новых рекламодателей — клиентов агентства,
32
     * а также пользователей — главных представителей рекламодателя.
33
     *
34
     * @param $Login
35
     * @param $FirstName
36
     * @param $LastName
37
     * @param $Currency
38
     * @param $Grants
39
     * @param $Notification
40
     * @param $Settings
41
     * @return array
42
     * @throws \Throwable
43
     *
44
     * @see https://tech.yandex.ru/direct/doc/ref-v5/agencyclients/add-docpage/
45
     */
46
    public function add($Login, $FirstName, $LastName, $Currency, $Notification, $Grants = null, $Settings = null)
47
    {
48
        $params = compact(get_param_names(__METHOD__));
49
50
        return $this->call([
51
            'method' => 'add',
52
            'params' => $params
53
        ]);
54
    }
55
56
    /**
57
     * Изменяет параметры рекламодателей — клиентов агентства, а также настройки пользователей —
58
     * главных представителей рекламодателя.
59
     *
60
     * @inheritDoc
61
     * @param $Clients
62
     * @throws \Throwable
63
     *
64
     * @see https://yandex.ru/dev/direct/doc/ref-v5/agencyclients/update-docpage/
65
     */
66
    public function update($Clients)
67
    {
68
        return $this->call([
69
            'method' => 'update',
70
            'params' => [
71
                'Clients' => $Clients
72
            ]
73
        ]);
74
    }
75
76
    protected function getHeaders(): array
77
    {
78
        $headers = parent::getHeaders();
79
80
        unset($headers['Client-Login']);
81
82
        return $headers;
83
    }
84
}
85