Passed
Push — master ( 52dd57...a4c9fa )
by Willy
02:14
created

ProgressionService::prepareBossValueObject()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 20
Code Lines 15

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 6

Importance

Changes 1
Bugs 0 Features 0
Metric Value
c 1
b 0
f 0
dl 0
loc 20
ccs 0
cts 19
cp 0
rs 9.4285
cc 2
eloc 15
nc 2
nop 1
crap 6
1
<?php
2
3
namespace Kubinashi\BattlenetApi\WorldOfWarcraft\CharacterProfileApi\Progression\Service;
4
5
use Kubinashi\BattlenetApi\WorldOfWarcraft\CharacterProfileApi\Progression\Model\BossValueObject;
6
use Kubinashi\BattlenetApi\WorldOfWarcraft\CharacterProfileApi\Progression\Model\ProgressionValueObject;
7
use Kubinashi\BattlenetApi\WorldOfWarcraft\CharacterProfileApi\Progression\Model\RaidValueObject;
8
9
/**
10
 * @author  Willy Reiche
11
 * @since   2017-08-28
12
 * @version 1.0
13
 */
14
class ProgressionService
15
{
16
    /**
17
     * @param \StdClass $responseObject
18
     * @return ProgressionValueObject
19
     */
20
    public function prepareProgressionValueObject($responseObject)
21
    {
22
        $raids = $this->prepareRaidValueObject($responseObject);
23
24
        $progression = new ProgressionValueObject(
25
            $raids
26
        );
27
28
        return $progression;
29
    }
30
31
    /**
32
     * @param \StdClass $responseObject
33
     * @return RaidValueObject[]
34
     */
35
    private function prepareRaidValueObject($responseObject)
36
    {
37
        $raids = [];
38
39
        foreach ($responseObject->progression->raids as $raid) {
40
            $bosses = $this->prepareBossValueObject($raid);
41
42
            $raids[] = new RaidValueObject(
43
                $raid->name,
44
                $raid->lfr,
45
                $raid->normal,
46
                $raid->heroic,
47
                $raid->mythic,
48
                $raid->id,
49
                $bosses
50
            );
51
        }
52
53
        return $raids;
54
    }
55
56
    /**
57
     * @param \StdClass $raid
58
     * @return BossValueObject[]
59
     */
60
    private function prepareBossValueObject($raid)
61
    {
62
        $bosses = [];
63
        foreach ($raid->bosses as $boss) {
64
            $bosses[] = new BossValueObject(
65
                $boss->id,
66
                $boss->name,
67
                $boss->lfrKills,
68
                $boss->lfrTimestamp,
69
                $boss->normalKills,
70
                $boss->normalTimestamp,
71
                $boss->heroicKills,
72
                $boss->heroicTimestamp,
73
                $boss->mythicKills,
74
                $boss->mythicTimestamp
75
            );
76
        }
77
78
        return $bosses;
79
    }
80
}
81