Passed
Push — master ( 5f4c59...0a76e5 )
by Fabian
01:35
created

TickerResponse::getBid()   A

Complexity

Conditions 2
Paths 1

Size

Total Lines 7
Code Lines 3

Duplication

Lines 7
Ratio 100 %

Importance

Changes 0
Metric Value
cc 2
eloc 3
nc 1
nop 1
dl 7
loc 7
rs 9.4285
c 0
b 0
f 0
1
<?php
2
3
namespace HanischIt\KrakenApi\Model\GetTicker;
4
5
use HanischIt\KrakenApi\Model\ResponseInterface;
6
7
/**
8
 * Class ServerTimeResponse
9
 *
10
 * @package HanischIt\KrakenApi\Model\GetTicker
11
 */
12
class TickerResponse implements ResponseInterface
13
{
14
    /**
15
     * @var TickerModel[]
16
     */
17
    private $models;
18
19
    /**
20
     * @param array $result
21
     */
22
    public function manualMapping($result)
23
    {
24
        foreach ($result as $assetPair => $tickerValues) {
25
            $this->models[$assetPair] = new TickerModel(
26
                $assetPair,
27
                new AskBidModel($tickerValues["a"][0], $tickerValues["a"][1], $tickerValues["a"][2]),
28
                new AskBidModel($tickerValues["b"][0], $tickerValues["b"][1], $tickerValues["b"][2]),
29
                new PriceVolumeModel($tickerValues["c"][0], $tickerValues["c"][1]),
30
                new DayPriceModel($tickerValues["v"][0], $tickerValues["v"][1]),
31
                new DayPriceModel($tickerValues["p"][0], $tickerValues["p"][1]),
32
                new DayPriceModel($tickerValues["t"][0], $tickerValues["t"][1]),
33
                new DayPriceModel($tickerValues["l"][0], $tickerValues["l"][1]),
34
                new DayPriceModel($tickerValues["h"][0], $tickerValues["h"][1]),
35
                $tickerValues["o"]
36
            );
37
        }
38
    }
39
40
    /**
41
     * @param string $assetPair
42
     *
43
     * @return AskBidModel
44
     * @throws \Exception
45
     */
46 View Code Duplication
    public function getAsk($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
47
    {
48
        if (!isset($assetPair)) {
49
            throw new \Exception($assetPair . " is not included in response");
50
        }
51
52
        return $this->models[$assetPair]->getAsk();
53
    }
54
55
    /**
56
     * @param string $assetPair
57
     *
58
     * @return AskBidModel
59
     * @throws \Exception
60
     */
61 View Code Duplication
    public function getBid($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
62
    {
63
        if (!isset($assetPair)) {
64
            throw new \Exception($assetPair . " is not included in response");
65
        }
66
67
        return $this->models[$assetPair]->getBid();
68
    }
69
70
    /**
71
     * @param string $assetPair
72
     *
73
     * @return mixed
74
     * @throws \Exception
75
     */
76 View Code Duplication
    public function getLastTradeClosed($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
77
    {
78
        if (!isset($assetPair)) {
79
            throw new \Exception($assetPair . " is not included in response");
80
        }
81
82
        return $this->models[$assetPair]->getLastTradeClosed();
83
    }
84
85
    /**
86
     * @param string $assetPair
87
     *
88
     * @return DayPriceModel
89
     * @throws \Exception
90
     */
91 View Code Duplication
    public function getVolume($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
92
    {
93
        if (!isset($assetPair)) {
94
            throw new \Exception($assetPair . " is not included in response");
95
        }
96
97
        return $this->models[$assetPair]->getVolume();
98
    }
99
100
    /**
101
     * @param string $assetPair
102
     *
103
     * @return DayPriceModel
104
     * @throws \Exception
105
     */
106 View Code Duplication
    public function getVolumeWeightedAverage($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
107
    {
108
        if (!isset($assetPair)) {
109
            throw new \Exception($assetPair . " is not included in response");
110
        }
111
112
        return $this->models[$assetPair]->getVolumeWeightedAverage();
113
    }
114
115
    /**
116
     * @param string $assetPair
117
     *
118
     * @return DayPriceModel
119
     * @throws \Exception
120
     */
121 View Code Duplication
    public function getNumberOfTrades($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
122
    {
123
        if (!isset($assetPair)) {
124
            throw new \Exception($assetPair . " is not included in response");
125
        }
126
127
        return $this->models[$assetPair]->getNumberOfTrades();
128
    }
129
130
    /**
131
     * @param string $assetPair
132
     *
133
     * @return DayPriceModel
134
     * @throws \Exception
135
     */
136 View Code Duplication
    public function getLow($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
137
    {
138
        if (!isset($assetPair)) {
139
            throw new \Exception($assetPair . " is not included in response");
140
        }
141
142
        return $this->models[$assetPair]->getLow();
143
    }
144
145
    /**
146
     * @param string $assetPair
147
     *
148
     * @return DayPriceModel
149
     * @throws \Exception
150
     */
151 View Code Duplication
    public function getHigh($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
152
    {
153
        if (!isset($assetPair)) {
154
            throw new \Exception($assetPair . " is not included in response");
155
        }
156
157
        return $this->models[$assetPair]->getHigh();
158
    }
159
160
    /**
161
     * @param string $assetPair
162
     *
163
     * @return float
164
     * @throws \Exception
165
     */
166 View Code Duplication
    public function getTodaysOpeningPrice($assetPair)
0 ignored issues
show
Duplication introduced by
This method seems to be duplicated in your project.

Duplicated code is one of the most pungent code smells. If you need to duplicate the same code in three or more different places, we strongly encourage you to look into extracting the code into a single class or operation.

You can also find more detailed suggestions in the “Code” section of your repository.

Loading history...
167
    {
168
        if (!isset($assetPair)) {
169
            throw new \Exception($assetPair . " is not included in response");
170
        }
171
172
        return $this->models[$assetPair]->getTodaysOpeningPrice();
173
    }
174
}
175