Message   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 3
eloc 23
c 1
b 0
f 0
dl 0
loc 48
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A setMaxBodyLength() 0 5 1
A createValidator() 0 28 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Contact\Validation\Factory;
6
7
use Opulence\Validation\Factories\ValidatorFactory;
8
use Opulence\Validation\IValidator;
9
10
class Message extends ValidatorFactory
11
{
12
    /** @var int */
13
    protected $maxBodyLength = 0;
14
15
    /**
16
     * @param int $maxBodyLength
17
     *
18
     * @return $this
19
     */
20
    public function setMaxBodyLength(int $maxBodyLength): Message
21
    {
22
        $this->maxBodyLength = $maxBodyLength;
23
24
        return $this;
25
    }
26
27
    /**
28
     * @return IValidator
29
     */
30
    public function createValidator(): IValidator
31
    {
32
        $validator = parent::createValidator();
33
34
        $validator
35
            ->field('from_name')
36
            ->required();
37
38
        $validator
39
            ->field('from_email')
40
            ->email()
41
            ->required();
42
43
        $validator
44
            ->field('subject')
45
            ->required();
46
47
        $validator
48
            ->field('body')
49
            ->required();
50
51
        if ($this->maxBodyLength > 0) {
52
            $validator
53
                ->field('body')
54
                ->maxLength($this->maxBodyLength);
55
        }
56
57
        return $validator;
58
    }
59
}
60