User   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 60
Duplicated Lines 0 %

Importance

Changes 2
Bugs 0 Features 0
Metric Value
wmc 3
eloc 34
c 2
b 0
f 0
dl 0
loc 60
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A makePasswordRequired() 0 13 2
A createValidator() 0 35 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Admin\Validation\Factory;
6
7
use AbterPhp\Framework\Http\Service\Execute\IRepoService;
8
use Opulence\Validation\Factories\ValidatorFactory;
9
use Opulence\Validation\IValidator;
10
11
class User extends ValidatorFactory implements IConditional
12
{
13
    use ConditionalTrait;
14
15
    /**
16
     * @return IValidator
17
     */
18
    public function createValidator(): IValidator
19
    {
20
        $validator = parent::createValidator();
21
22
        $validator
23
            ->field('id')
24
            ->forbidden();
25
26
        $validator
27
            ->field('username')
28
            ->required();
29
30
        $validator
31
            ->field('email')
32
            ->email()
33
            ->required();
34
35
        $validator
36
            ->field('user_group_ids');
37
38
        $validator
39
            ->field('user_language_id')
40
            ->uuid()
41
            ->required();
42
43
        $validator
44
            ->field('password');
45
46
        $validator
47
            ->field('password_confirmed')
48
            ->equalsField('password');
49
50
        $this->makePasswordRequired($validator);
51
52
        return $validator;
53
    }
54
55
    /**
56
     * @param IValidator $validator
57
     */
58
    protected function makePasswordRequired(IValidator $validator): void
59
    {
60
        if ($this->additionalData !== IRepoService::CREATE) {
61
            return;
62
        }
63
64
        $validator
65
            ->field('password')
66
            ->required();
67
68
        $validator
69
            ->field('password_confirmed')
70
            ->required();
71
    }
72
}
73