Test Failed
Pull Request — master (#41)
by vincent
09:59 queued 04:10
created

TVNetwork::getAlternativeNames()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 9
Code Lines 6

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 6
c 1
b 0
f 0
nc 2
nop 0
dl 0
loc 9
rs 10
1
<?php declare(strict_types = 1);
2
/**
3
 * This file is part of the Tmdb package.
4
 *
5
 * (c) Vincent Faliès <[email protected]>
6
 *
7
 * For the full copyright and license information, please view the LICENSE
8
 * file that was distributed with this source code.
9
 *
10
 * @author Vincent Faliès <[email protected]>
11
 * @copyright Copyright (c) 2017-2020
12
 */
13
14
15
namespace VfacTmdb\Items;
16
17
use VfacTmdb\Abstracts\Item;
18
use VfacTmdb\Interfaces\Items\TVNetworkInterface;
19
use VfacTmdb\Interfaces\TmdbInterface;
20
use VfacTmdb\Results;
21
22
/**
23
 * TVNetwork class
24
 * @package Tmdb
25
 * @author Steve Richter <[email protected]>
26
 * @copyright Copyright (c) 2017-2020
27
 */
28
class TVNetwork extends Item implements TVNetworkInterface
29
{
30
    /**
31
     * Constructor
32
     * @param TmdbInterface $tmdb
33
     * @param int $network_id
34
     * @param array $options
35
     */
36
    public function __construct(TmdbInterface $tmdb, int $network_id, array $options = array())
37
    {
38
        parent::__construct($tmdb, $network_id, $options, 'network');
39
    }
40
41
    /**
42
     * Get TV Network id
43
     * @return int
44
     */
45
    public function getId() : int
46
    {
47
        return $this->id;
48
    }
49
50
    /**
51
     * Get TV Network name
52
     * @return string
53
     */
54
    public function getName() : string
55
    {
56
        if (isset($this->data->name)) {
57
            return $this->data->name;
58
        }
59
        return '';
60
    }
61
62
    /**
63
     * Get TV Network headquarters
64
     * @return string
65
     */
66
    public function getHeadquarters() : string
67
    {
68
        if (isset($this->data->headquarters)) {
69
            return $this->data->headquarters;
70
        }
71
        return '';
72
    }
73
74
    /**
75
     * Get TV Network homepage
76
     * @return string
77
     */
78
    public function getHomepage() : string
79
    {
80
        if (isset($this->data->homepage)) {
81
            return $this->data->homepage;
82
        }
83
        return '';
84
    }
85
86
    /**
87
     * Get TV Network origin country
88
     * @return string
89
     */
90
    public function getOriginCountry() : string
91
    {
92
        if (isset($this->data->origin_country)) {
93
            return $this->data->origin_country;
94
        }
95
        return '';
96
    }
97
98
    /**
99
     * Alternative names list
100
     * @return \Generator|Results\AlternativeName
101
     */
102
    public function getAlternativeNames() : \Generator
103
    {
104
        $params = [];
105
        $this->tmdb->checkOptionLanguage($this->params, $params);
106
        $data = $this->tmdb->getRequest('network/' . (int) $this->id . '/alternative_names', $params);
107
108
        foreach ($data->results as $n) {
109
            $name = new Results\AlternativeName($this->tmdb, $this->id, $n);
110
            yield $name;
111
        }
112
    }
113
114
    /**
115
     * Logos list
116
     * @return \Generator|Results\Logo
117
     */
118
    public function getLogos() : \Generator
119
    {
120
        $params = [];
121
        $this->tmdb->checkOptionLanguage($this->params, $params);
122
        $data = $this->tmdb->getRequest('network/' . (int) $this->id . '/images', $params);
123
124
        foreach ($data->logos as $logo) {
125
            $image = new Results\Logo($this->tmdb, $this->id, $logo);
126
            yield $image;
127
        }
128
    }
129
}
130