Register::validateData()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 18
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 13
nc 1
nop 5
dl 0
loc 18
rs 9.8333
c 1
b 0
f 0
1
<?php
2
3
4
namespace App\Src\UseCases\Domain\Auth;
5
6
7
use App\Src\UseCases\Domain\User;
8
use Illuminate\Support\Facades\Hash;
9
use Illuminate\Support\Facades\Validator;
10
use Ramsey\Uuid\Uuid;
11
12
class Register
13
{
14
    public function register(string $email, string $firstname, string $lastname, string $password, string $passwordConf)
15
    {
16
        $this->validateData($email, $firstname, $lastname, $password, $passwordConf);
17
        $userId = Uuid::uuid4();
18
        $user = new User($userId, $email, $firstname, $lastname);
19
        $user->create(Hash::make($password));
20
        return $userId;
21
    }
22
23
    private function validateData(string $email, string $firstname, string $lastname, string $password, string $passwordConf): void
24
    {
25
        $rules = [
26
            'email' => 'string|required|email|min:2|max:255',
27
            'firstname' => 'string|min:2|max:255|nullable',
28
            'lastname' => 'string|min:2|max:255|nullable',
29
            'password' => 'string|required|min:8|max:255|confirmed',
30
        ];
31
32
        $data = [
33
            'email' => $email,
34
            'firstname' => $firstname,
35
            'lastname' => $lastname,
36
            'password' => $password,
37
            'password_confirmation' => $passwordConf,
38
        ];
39
        $validator = Validator::make($data, $rules);
40
        $validator->validate();
41
    }
42
}
43