Completed
Pull Request — master (#30)
by vincent
03:53
created

Jobs::getList()   A

Complexity

Conditions 4
Paths 6

Size

Total Lines 20
Code Lines 13

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 12
CRAP Score 4

Importance

Changes 0
Metric Value
dl 0
loc 20
ccs 12
cts 12
cp 1
rs 9.2
c 0
b 0
f 0
cc 4
eloc 13
nc 6
nop 0
crap 4
1
<?php declare(strict_types = 1);
2
3
/**
4
 * This file is part of the Tmdb package.
5
 *
6
 * (c) Vincent Faliès <[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
 * @author Vincent Faliès <[email protected]>
12
 * @copyright Copyright (c) 2017
13
 */
14
15
namespace VfacTmdb\Catalogs;
16
17
use VfacTmdb\Interfaces\TmdbInterface;
18
19
use VfacTmdb\Exceptions\TmdbException;
20
21
/**
22
 * Class to get jobs list with department
23
 * @package Tmdb
24
 * @author Vincent Faliès <[email protected]>
25
 * @copyright Copyright (c) 2017
26
 */
27
class Jobs
28
{
29
30
    /**
31
     * Tmdb object
32
     * @var TmdbInterface
33
     */
34
    protected $tmdb = null;
35
36
    /**
37
     * Constructor
38
     * @param TmdbInterface $tmdb
39
     */
40 2
    public function __construct(TmdbInterface $tmdb)
41
    {
42 2
        $this->tmdb = $tmdb;
43 2
    }
44
45
    /**
46
     * Get job list
47
     * @return \Generator|\stdClass
48
     * @throws TmdbException
49
     */
50 2
    public function getList() : \Generator
51
    {
52
        try {
53 2
            $response = $this->tmdb->getRequest('job/list');
54
55 1
            $results = [];
56 1
            if (isset($response->jobs)) {
57 1
                foreach ($response->jobs as $j) {
58 1
                    $result             = new \stdClass();
59 1
                    $result->department = $j->department;
60 1
                    $result->jobs       = $j->job_list;
61
62 1
                    $results[] = $result;
63
                }
64
            }
65 1
        } catch (TmdbException $ex) {
66 1
            throw $ex;
67
        }
68 1
        return $this->genreItemGenerator($results);
69
    }
70
71
    /**
72
     * Genre Item generator method
73
     * @param array $results
74
     * @return \Generator
75
     */
76 1
    private function genreItemGenerator(array $results) : \Generator
77
    {
78 1
        foreach ($results as $result) {
79 1
            yield $result;
80
        }
81 1
    }
82
}
83