CustomField::get()   A
last analyzed

Complexity

Conditions 3
Paths 4

Size

Total Lines 15

Duplication

Lines 15
Ratio 100 %

Code Coverage

Tests 10
CRAP Score 3

Importance

Changes 0
Metric Value
dl 15
loc 15
ccs 10
cts 10
cp 1
rs 9.7666
c 0
b 0
f 0
cc 3
nc 4
nop 0
crap 3
1
<?php
2
3
namespace linkprofit\AmoCRM\entities;
4
5
use linkprofit\AmoCRM\traits\FieldList;
6
7
/**
8
 * Class CustomField
9
 * @package linkprofit\AmoCRM\entities
10
 */
11
class CustomField implements EntityInterface
12
{
13
    /**
14
     * @var integer Уникальный идентификатор заполняемого дополнительного поля
15
     */
16
    public $id;
17
18
    /**
19
     * @var string
20
     */
21
    public $name;
22
23
    /**
24
     * @var string
25
     */
26
    public $code;
27
28
    /**
29
     * @var bool Является ли дополнительное поле системным
30
     */
31
    public $is_system;
32
33
    /**
34
     * @var Value[]
35
     */
36
    protected $values = [];
37
38
    /**
39
     * @var array
40
     */
41
    protected $fieldList = [
42
        'id', 'name', 'code', 'is_system',
43
    ];
44
45
    use FieldList;
46
47
    /**
48
     * CustomField constructor.
49
     * @param $id
50
     * @param null $name
51
     * @param null $code
52
     */
53 35
    public function __construct($id, $name = null, $code = null)
54
    {
55 35
        $this->id = $id;
56 35
        $this->name = $name;
57 35
        $this->code = $code;
58 35
    }
59
60
    /**
61
     * @param Value $value
62
     */
63 34
    public function addValue(Value $value)
64
    {
65 34
        $this->values[] = $value;
66 34
    }
67
68
    /**
69
     * @return array
70
     */
71 30 View Code Duplication
    public function get()
72
    {
73 30
        $fields = $this->getExistedValues($this->fieldList);
74
75 30
        $values = [];
76 30
        foreach ($this->values as $value) {
77 29
            $values[] = $value->get();
78 30
        }
79
80 30
        if (count($values)) {
81 29
            $fields['values'] = $values;
82 29
        }
83
84 30
        return $fields;
85
    }
86
87
    /**
88
     * @param $array
89
     */
90 7
    public function set($array)
91
    {
92 7
        $this->setFromArray($this->fieldList, $array);
93
    }
94
}