Completed
Push — master ( 9b5529...8e3c70 )
by vistart
09:42 queued 03:37
created

NotificationTrait::enabledFields()   A

Complexity

Conditions 3
Paths 4

Size

Total Lines 11
Code Lines 7

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 3.0987

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 11
ccs 7
cts 9
cp 0.7778
rs 9.4285
cc 3
eloc 7
nc 4
nop 0
crap 3.0987
1
<?php
2
3
/**
4
 *  _   __ __ _____ _____ ___  ____  _____
5
 * | | / // // ___//_  _//   ||  __||_   _|
6
 * | |/ // /(__  )  / / / /| || |     | |
7
 * |___//_//____/  /_/ /_/ |_||_|     |_|
8
 * @link https://vistart.name/
9
 * @copyright Copyright (c) 2016 vistart
10
 * @license https://vistart.name/license/
11
 */
12
13
namespace vistart\Models\traits;
14
15
/**
16
 * This trait is used for building notification model.
17
 *
18
 * @version 2.0
19
 * @author vistart <[email protected]>
20
 */
21
trait NotificationTrait
22
{
23
    use NotificationRangeTrait;
24
25
    public $linkAttribute = false;
26
27
    public function getLink()
28
    {
29
        $linkAttribute = $this->linkAttribute;
30
        if (is_string($linkAttribute)) {
31
            return $this->$linkAttribute;
32
        }
33
        return null;
34
    }
35
36
    public function setLink($link)
37
    {
38
        $linkAttribute = $this->linkAttribute;
39
        if (is_string($linkAttribute)) {
40
            return $this->$linkAttribute = $link;
41
        }
42
    }
43
44 4
    public function getNotificationRules()
45
    {
46 4
        $rules = $this->getNotificationRangeRules();
47
48 4
        if (is_string($this->linkAttribute)) {
49
            $rules[] = [
50
                $this->linkAttribute, 'string',
51
            ];
52
        }
53 4
        return $rules;
54
    }
55
56 3
    public function enabledFields()
57
    {
58 3
        $fields = parent::enabledFields();
59 3
        if (is_string($this->linkAttribute)) {
60
            $fields[] = $this->linkAttribute;
61
        }
62 3
        if (is_string($this->rangeAttribute)) {
63 3
            $fields[] = $this->rangeAttribute;
64 3
        }
65 3
        return $fields;
66
    }
67
68 4
    public function rules()
69
    {
70 4
        return array_merge(parent::rules(), $this->getNotificationRules());
71
    }
72
}
73