@@ 12-97 (lines=86) @@ | ||
9 | ||
10 | namespace Core23\LastFm\Builder; |
|
11 | ||
12 | final class AlbumInfoBuilder |
|
13 | { |
|
14 | /** |
|
15 | * @var array |
|
16 | */ |
|
17 | private $query; |
|
18 | ||
19 | private function __construct() |
|
20 | { |
|
21 | $this->query = []; |
|
22 | } |
|
23 | ||
24 | /** |
|
25 | * @param string $artist |
|
26 | * @param string $album |
|
27 | * |
|
28 | * @return AlbumInfoBuilder |
|
29 | */ |
|
30 | public static function forAlbum(string $artist, string $album): self |
|
31 | { |
|
32 | $builder = new static(); |
|
33 | ||
34 | $builder->query['artist'] = $artist; |
|
35 | $builder->query['album'] = $album; |
|
36 | ||
37 | return $builder; |
|
38 | } |
|
39 | ||
40 | /** |
|
41 | * @param string $mbid |
|
42 | * |
|
43 | * @return AlbumInfoBuilder |
|
44 | */ |
|
45 | public static function forMbid(string $mbid): self |
|
46 | { |
|
47 | $builder = new static(); |
|
48 | ||
49 | $builder->query['mbid'] = $mbid; |
|
50 | ||
51 | return $builder; |
|
52 | } |
|
53 | ||
54 | /** |
|
55 | * @param string $name |
|
56 | * |
|
57 | * @return AlbumInfoBuilder |
|
58 | */ |
|
59 | public function forUsername(string $name): self |
|
60 | { |
|
61 | $this->query['username'] = (int) $name; |
|
62 | ||
63 | return $this; |
|
64 | } |
|
65 | ||
66 | /** |
|
67 | * @param string $name |
|
68 | * |
|
69 | * @return AlbumInfoBuilder |
|
70 | */ |
|
71 | public function language(string $name): self |
|
72 | { |
|
73 | $this->query['lang'] = (int) $name; |
|
74 | ||
75 | return $this; |
|
76 | } |
|
77 | ||
78 | /** |
|
79 | * @param bool $autocorrect |
|
80 | * |
|
81 | * @return AlbumInfoBuilder |
|
82 | */ |
|
83 | public function autocorrect(bool $autocorrect): self |
|
84 | { |
|
85 | $this->query['autocorrect'] = $autocorrect ? 1 : 0; |
|
86 | ||
87 | return $this; |
|
88 | } |
|
89 | ||
90 | /** |
|
91 | * @return array |
|
92 | */ |
|
93 | public function getQuery(): array |
|
94 | { |
|
95 | return $this->query; |
|
96 | } |
|
97 | } |
|
98 |
@@ 12-95 (lines=84) @@ | ||
9 | ||
10 | namespace Core23\LastFm\Builder; |
|
11 | ||
12 | final class ArtistInfoBuilder |
|
13 | { |
|
14 | /** |
|
15 | * @var array |
|
16 | */ |
|
17 | private $query; |
|
18 | ||
19 | private function __construct() |
|
20 | { |
|
21 | $this->query = []; |
|
22 | } |
|
23 | ||
24 | /** |
|
25 | * @param string $artist |
|
26 | * |
|
27 | * @return ArtistInfoBuilder |
|
28 | */ |
|
29 | public static function forArtist(string $artist): self |
|
30 | { |
|
31 | $builder = new static(); |
|
32 | ||
33 | $builder->query['artist'] = $artist; |
|
34 | ||
35 | return $builder; |
|
36 | } |
|
37 | ||
38 | /** |
|
39 | * @param string $mbid |
|
40 | * |
|
41 | * @return ArtistInfoBuilder |
|
42 | */ |
|
43 | public static function forMbid(string $mbid): self |
|
44 | { |
|
45 | $builder = new static(); |
|
46 | ||
47 | $builder->query['mbid'] = $mbid; |
|
48 | ||
49 | return $builder; |
|
50 | } |
|
51 | ||
52 | /** |
|
53 | * @param bool $autocorrect |
|
54 | * |
|
55 | * @return ArtistInfoBuilder |
|
56 | */ |
|
57 | public function autocorrect(bool $autocorrect): self |
|
58 | { |
|
59 | $this->query['autocorrect'] = $autocorrect ? 1 : 0; |
|
60 | ||
61 | return $this; |
|
62 | } |
|
63 | ||
64 | /** |
|
65 | * @param string $name |
|
66 | * |
|
67 | * @return ArtistInfoBuilder |
|
68 | */ |
|
69 | public function language(string $name): self |
|
70 | { |
|
71 | $this->query['lang'] = (int) $name; |
|
72 | ||
73 | return $this; |
|
74 | } |
|
75 | ||
76 | /** |
|
77 | * @param string $name |
|
78 | * |
|
79 | * @return ArtistInfoBuilder |
|
80 | */ |
|
81 | public function forUsername(string $name): self |
|
82 | { |
|
83 | $this->query['username'] = (int) $name; |
|
84 | ||
85 | return $this; |
|
86 | } |
|
87 | ||
88 | /** |
|
89 | * @return array |
|
90 | */ |
|
91 | public function getQuery(): array |
|
92 | { |
|
93 | return $this->query; |
|
94 | } |
|
95 | } |
|
96 |