Completed
Push — master ( e5b10a...ef7318 )
by dotzero
02:34 queued 01:01
created

Call   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 68
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 2

Test Coverage

Coverage 94.74%

Importance

Changes 3
Bugs 0 Features 0
Metric Value
wmc 6
c 3
b 0
f 0
lcom 0
cbo 2
dl 0
loc 68
ccs 18
cts 19
cp 0.9474
rs 10

1 Method

Rating   Name   Duplication   Size   Complexity  
B apiAdd() 0 28 6
1
<?php
2
3
namespace AmoCRM\Models;
4
5
use AmoCRM\Models\Traits\SetDate;
6
7
/**
8
 * Class Call
9
 *
10
 * Класс модель для работы со Звонками
11
 *
12
 * @package AmoCRM\Models
13
 * @author dotzero <[email protected]>
14
 * @link http://www.dotzero.ru/
15
 * @link https://github.com/dotzero/amocrm-php
16
 *
17
 * For the full copyright and license information, please view the LICENSE
18
 * file that was distributed with this source code.
19
 */
20
class Call extends AbstractModel
21
{
22
    use SetDate;
23
24
    /**
25
     * @var array Список доступный полей для модели (исключая кастомные поля)
26
     */
27
    protected $fields = [
28
        'account_id',
29
        'uuid',
30
        'caller',
31
        'to',
32
        'date',
33
        'type',
34
        'billsec',
35
        'link',
36
    ];
37
38
    /**
39
     * @const string Тип звонка входящий
40
     */
41
    const TYPE_INBOUND = 'inbound';
42
43
    /**
44
     * @const string Тип звонка исходящий
45
     */
46
    const TYPE_OUTBOUND = 'outbound';
47
48
    /**
49
     * Добавление звонков
50
     *
51
     * Метод позволяет добавлять звонки по одному или пакетно
52
     *
53
     * @link https://developers.amocrm.ru/rest_api/calls_set.php
54
     * @param string $code Уникальный идентификатор сервиса
55
     * @param string $key Ключ сервиса, который можно получить написав в техническую поддержку amoCRM
56
     * @param array $calls Массив звонков для пакетного добавления
57
     * @return string|array Уникальный идентификатор звонка или массив при пакетном добавлении
58
     */
59 1
    public function apiAdd($code, $key, $calls = [])
60
    {
61 1
        $this->getParameters()->addGet('code', $code);
62 1
        $this->getParameters()->addGet('key', $key);
63
64 1
        if (empty($calls)) {
65 1
            $calls = [$this];
66 1
        }
67
68
        $parameters = [
69 1
            'add' => [],
70 1
        ];
71
72 1
        foreach ($calls AS $call) {
73 1
            $parameters['add'][] = $call->getValues();
74 1
        }
75
76 1
        $response = $this->postRequest('/api/calls/add/', $parameters);
77
78 1
        $result = [];
79 1
        if (!isset($response['calls']['add']['errors'])) {
80
            return $result;
81 1
        } elseif (isset($response['calls']['add']['success'])) {
82 1
            $result = $response['calls']['add']['success'];
83 1
        }
84
85 1
        return count($calls) == 1 ? array_shift($result) : $result;
86
    }
87
}
88