Login::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 7
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 6
CRAP Score 1

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 5
c 1
b 0
f 0
dl 0
loc 7
ccs 6
cts 6
cp 1
rs 10
cc 1
nc 1
nop 5
crap 1
1
<?php
2
3
4
namespace talismanfr\psbbank\vo;
5
6
7
use talismanfr\psbbank\vo\traits\Errors;
8
9
class Login
10
{
11
    use Errors;
12
13
    /** @var int |null */
14
    private $id;
15
    /** @var string|null */
16
    private $token;
17
    /** @var string |null */
18
    private $fio;
19
    /** @var string | null */
20
    private $agent;
21
22
    /**
23
     * LoginResponse constructor.
24
     * @param int|null $id
25
     * @param string|null $token
26
     * @param string $fio
27
     * @param string $agent
28
     * @param array $errors
29
     */
30 1
    public function __construct(?int $id, ?string $token, ?string $fio, ?string $agent, ?array $errors)
31
    {
32 1
        $this->id = $id;
33 1
        $this->token = $token;
34 1
        $this->fio = $fio;
35 1
        $this->agent = $agent;
36 1
        $this->errors = $errors;
37 1
    }
38
39
    /**
40
     * @param array $data
41
     * @return self
42
     */
43 1
    public static function fromResponseData(array $data): self
44
    {
45 1
        $errors = self::buildErrors($data);
46 1
        if ($errors) {
47 1
            return new self(null, null, null, null, $errors);
48
        }
49
50 1
        $data = $data['data'];
51
52 1
        return new self(
53 1
            $data['id'],
54 1
            $data["access_token"],
55 1
            $data['fio'],
56 1
            $data['agent'],
57 1
            null
58
        );
59
    }
60
61
    /**
62
     * @return int|null
63
     */
64 1
    public function getId(): ?int
65
    {
66 1
        return $this->id;
67
    }
68
69
    /**
70
     * @return string|null
71
     */
72 1
    public function getToken(): ?string
73
    {
74 1
        return $this->token;
75
    }
76
77
    /**
78
     * @return string|null
79
     */
80
    public function getFio(): ?string
81
    {
82
        return $this->fio;
83
    }
84
85
    /**
86
     * @return string|null
87
     */
88
    public function getAgent(): ?string
89
    {
90
        return $this->agent;
91
    }
92
93
}