FormUpdate   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 65
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
wmc 5
eloc 23
dl 0
loc 65
rs 10
c 0
b 0
f 0

5 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A make() 0 6 1
A labels() 0 6 1
A rules() 0 7 1
A before() 0 5 1
1
<?php
2
3
namespace Apps\Model\Admin\Feedback;
4
5
use Apps\ActiveRecord\FeedbackAnswer;
6
use Apps\ActiveRecord\FeedbackPost;
7
use Ffcms\Core\Arch\Model;
8
9
/**
10
 * Class FormUpdate. Update feedback post or answer business logic model
11
 * @package Apps\Model\Admin\Feedback
12
 */
13
class FormUpdate extends Model
14
{
15
    public $name;
16
    public $email;
17
    public $message;
18
19
    /** @var FeedbackAnswer|FeedbackPost */
20
    private $_record;
21
22
    /**
23
     * FormUpdate constructor. Pass active record inside the model.
24
     * @param FeedbackPost|FeedbackAnswer $record
25
     */
26
    public function __construct($record)
27
    {
28
        $this->_record = $record;
29
        parent::__construct();
30
    }
31
32
    /**
33
     * Set model properties from active record data
34
     */
35
    public function before()
36
    {
37
        $this->name = $this->_record->name;
38
        $this->email = $this->_record->email;
39
        $this->message = $this->_record->message;
40
    }
41
42
    /**
43
     * Labels to display edit form
44
     * @return array
45
     */
46
    public function labels(): array
47
    {
48
        return [
49
            'name' => __('Name'),
50
            'email' => __('Email'),
51
            'message' => __('Message'),
52
        ];
53
    }
54
55
    /**
56
     * Rules to validate changes
57
     * @return array
58
     */
59
    public function rules(): array
60
    {
61
        return [
62
            [['name', 'email', 'message'], 'required'],
63
            ['name', 'length_min', '2'],
64
            ['message', 'length_min', 10],
65
            ['email', 'email']
66
        ];
67
    }
68
69
    /**
70
     * Save data to database
71
     */
72
    public function make()
73
    {
74
        $this->_record->name = $this->name;
75
        $this->_record->email = $this->email;
76
        $this->_record->message = $this->message;
77
        $this->_record->save();
78
    }
79
}
80