GitHub Access Token became invalid

It seems like the GitHub access token used for retrieving details about this repository from GitHub became invalid. This might prevent certain types of inspections from being run (in particular, everything related to pull requests).
Please ask an admin of your repository to re-new the access token on this website.
Completed
Push — master ( fc424a...ea923b )
by Christian
06:24
created

Song::getCover()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4
Code Lines 2

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
eloc 2
nc 1
nop 0
1
<?php
2
3
declare(strict_types=1);
4
5
/*
6
 * (c) Christian Gripp <[email protected]>
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11
12
namespace Core23\SetlistFm\Model;
13
14
final class Song
15
{
16
    /**
17
     * @var string
18
     */
19
    private $name;
20
21
    /**
22
     * @var string|null
23
     */
24
    private $info;
25
26
    /**
27
     * @var Artist|null
28
     */
29
    private $cover;
30
31
    /**
32
     * @var bool
33
     */
34
    private $taped;
35
36
    /**
37
     * @var Artist[]
38
     */
39
    private $featurings;
40
41
    /**
42
     * Song constructor.
43
     *
44
     * @param string      $name
45
     * @param null|string $info
46
     * @param Artist|null $cover
47
     * @param bool        $taped
48
     * @param Artist[]    $featurings
49
     */
50
    public function __construct(string $name, ?string $info, ?Artist $cover, bool $taped, array $featurings)
51
    {
52
        $this->name       = $name;
53
        $this->info       = $info;
54
        $this->cover      = $cover;
55
        $this->taped      = $taped;
56
        $this->featurings = $featurings;
57
    }
58
59
    /**
60
     * @return string
61
     */
62
    public function getName(): string
63
    {
64
        return $this->name;
65
    }
66
67
    /**
68
     * @return null|string
69
     */
70
    public function getInfo(): ?string
71
    {
72
        return $this->info;
73
    }
74
75
    /**
76
     * @return Artist|null
77
     */
78
    public function getCover(): ?Artist
79
    {
80
        return $this->cover;
81
    }
82
83
    /**
84
     * @return bool
85
     */
86
    public function isTaped(): bool
87
    {
88
        return $this->taped;
89
    }
90
91
    /**
92
     * @return Artist[]
93
     */
94
    public function getFeaturings(): array
95
    {
96
        return $this->featurings;
97
    }
98
99
    /**
100
     * @param array $data
101
     *
102
     * @return Song
103
     */
104
    public static function fromApi(array $data): self
105
    {
106
        $featuring = [];
107
108
        if (array_key_exists('with', $data)) {
109
            $featuring[] = Artist::fromApi($data['with']);
110
        }
111
112
        return new self(
113
            $data['name'],
114
            $data['info'] ?? null,
115
            isset($data['cover']) ? Artist::fromApi($data['cover']) : null,
116
            isset($data['tape']) ? (bool) $data['tape'] : false,
117
            $featuring
118
        );
119
    }
120
}
121