Track::transformCollection()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 9

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 0
Metric Value
dl 0
loc 9
ccs 0
cts 6
cp 0
rs 9.9666
c 0
b 0
f 0
cc 2
nc 2
nop 1
crap 6
1
<?php
2
/**
3
 * Created by PhpStorm.
4
 * User: oguzu
5
 * Date: 29-3-2017
6
 * Time: 16:29
7
 */
8
9
namespace Pbxg33k\MusicInfo\Service\VocaDB\Endpoint;
10
11
use Doctrine\Common\Collections\ArrayCollection;
12
use Pbxg33k\MusicInfo\Model\BaseModel;
13
use Pbxg33k\MusicInfo\Model\IMusicServiceEndpoint;
14
use Pbxg33k\VocaDB\Song as TrackEndpoint;
15
use Pbxg33k\VocaDB\Models\Track as VocaDBTrackModel;
16
use Pbxg33k\MusicInfo\Model\Track as TrackModel;
17
18
class Track extends TrackEndpoint implements IMusicServiceEndpoint
19
{
20
    const DATA_SOURCE = 'vocadb';
21
22
    protected $parent;
23
24
    /**
25
     * @param $apiService
26
     *
27
     * @return mixed
28
     */
29
    public function setParent($apiService)
30
    {
31
        $this->parent = $apiService;
32
33
        return $this;
34
    }
35
36
    /**
37
     * Transform single item to model
38
     *
39
     * @param VocaDBTrackModel $raw
40
     *
41
     * @return BaseModel
42
     */
43
    public function transformSingle($raw)
44
    {
45
        $object = new TrackModel();
46
        $object
47
            ->setId($raw->getId())
48
            ->setName($raw->getName());
49
50
        var_dump(
0 ignored issues
show
Security Debugging Code introduced by
var_dump(__FILE__, __LINE__, $raw); looks like debug code. Are you sure you do not want to remove it? This might expose sensitive data.
Loading history...
51
            __FILE__, __LINE__,
52
            $raw
53
        );die();
54
55
        return $object;
0 ignored issues
show
Unused Code introduced by
return $object; does not seem to be reachable.

This check looks for unreachable code. It uses sophisticated control flow analysis techniques to find statements which will never be executed.

Unreachable code is most often the result of return, die or exit statements that have been added for debug purposes.

function fx() {
    try {
        doSomething();
        return true;
    }
    catch (\Exception $e) {
        return false;
    }

    return false;
}

In the above example, the last return false will never be executed, because a return statement has already been met in every possible execution path.

Loading history...
56
57
    }
58
59
    /**
60
     * Transform collection to models
61
     *
62
     * @param $raw
63
     *
64
     * @return ArrayCollection
65
     */
66
    public function transformCollection($raw)
67
    {
68
        $collection = new ArrayCollection();
69
        foreach ($raw->collection as $artist) {
70
            $collection->add($this->transformSingle($artist));
71
        }
72
73
        return $collection;
74
    }
75
76
    /**
77
     * Transform to models
78
     *
79
     * @param $raw
80
     *
81
     * @return ArrayCollection
82
     */
83
    public function transform($raw)
84
    {
85
        return $this->transformCollection($raw);
86
    }
87
88
    /**
89
     * @return mixed
90
     */
91
    public function getParent()
92
    {
93
        return $this->parent;
94
    }
95
96
    /**
97
     * @param $guid
98
     *
99
     * @return mixed
100
     */
101
    public function getByGuid($guid, $complete = true)
102
    {
103
        return $this->transform(parent::getById($guid, $complete));
0 ignored issues
show
Comprehensibility Bug introduced by
It seems like you call parent on a different method (getById() instead of getByGuid()). Are you sure this is correct? If so, you might want to change this to $this->getById().

This check looks for a call to a parent method whose name is different than the method from which it is called.

Consider the following code:

class Daddy
{
    protected function getFirstName()
    {
        return "Eidur";
    }

    protected function getSurName()
    {
        return "Gudjohnsen";
    }
}

class Son
{
    public function getFirstName()
    {
        return parent::getSurname();
    }
}

The getFirstName() method in the Son calls the wrong method in the parent class.

Loading history...
104
    }
105
106
    public function getByName($name, $complete = true)
107
    {
108
        return $this->transform(parent::getByName($name, $complete));
109
    }
110
}