Test Failed
Branch add-core-tests (a060d8)
by Rafael
05:48
created

CustomFields::addValues()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 16
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 12

Importance

Changes 0
Metric Value
cc 3
eloc 9
nc 4
nop 1
dl 0
loc 16
ccs 0
cts 13
cp 0
crap 12
rs 9.9666
c 0
b 0
f 0
1
<?php
2
declare(strict_types=1);
3
4
namespace Canvas\CustomFields;
5
6
use Baka\Database\CustomFields\CustomFields as BakaCustomFields;
7
use Canvas\Models\CustomFieldsValues;
8
9
class CustomFields extends BakaCustomFields
10
{
11
    /**
12
     * Initialize method for model.
13
     */
14
    public function initialize()
15
    {
16
        parent::initialize();
17
18
        $this->belongsTo(
19
            'custom_fields_modules_id',
20
            'Canvas\Models\CustomFieldsModules',
21
            'id',
22
            ['alias' => 'modules']
23
        );
24
25
        $this->hasMany(
26
            'id',
27
            'Canvas\Models\CompanyCustomFields',
28
            'custom_field_id',
29
            ['alias' => 'company-fields']
30
        );
31
32
        $this->belongsTo(
33
            'companies_id',
34
            'Canvas\Models\Apps',
35
            'id',
36
            ['alias' => 'companies']
37
        );
38
39
        $this->hasMany(
40
            'id',
41
            'Canvas\Models\CustomFieldsSettings',
42
            'custom_fields_id',
43
            ['alias' => 'fields-settings']
44
        );
45
46
        $this->hasMany(
47
            'id',
48
            'Canvas\Models\CustomFieldsValues',
49
            'custom_fields_id',
50
            ['alias' => 'fields-values']
51
        );
52
53
        $this->hasMany(
54
            'id',
55
            'Canvas\Models\CustomFieldsValues',
56
            'custom_fields_id',
57
            ['alias' => 'values']
58
        );
59
    }
60
61
    /**
62
     * Given an array of values, add it to this custom fields
63
     * related module.
64
     *
65
     * @param array $values
66
     * @return bool
67
     */
68
    public function addValues(array $values): bool
69
    {
70
        if ($this->values) {
71
            $this->values->delete();
72
        }
73
74
        foreach ($values as $key => $value) {
75
            $customFieldsValue = new CustomFieldsValues();
76
            $customFieldsValue->custom_fields_id = $this->getId();
77
            $customFieldsValue->label = $value;
78
            $customFieldsValue->value = $key;
79
            $customFieldsValue->saveOrFail();
80
        }
81
82
        
83
        return true;
84
    }
85
}
86