Passed
Push — main ( ac53a4...aee26d )
by Pouya
06:40 queued 03:43
created

Exchange   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 17
c 1
b 0
f 0
dl 0
loc 42
rs 10
wmc 6

5 Methods

Rating   Name   Duplication   Size   Complexity  
A call() 0 2 1
A ToBTC() 0 8 1
A Uri() 0 2 1
A Rates() 0 7 2
A __construct() 0 2 1
1
<?php
2
3
4
namespace Appino\Blockchain\Classes;
5
6
7
use Appino\Blockchain\Objects\Rate;
8
use Appino\Blockchain\Objects\ReceiveResponse;
9
10
class Exchange{
11
12
    private $blockchain;
13
14
    public function __construct(Blockchain $blockchain){
15
        $this->blockchain = $blockchain;
16
    }
17
18
    const URL = 'https://blockchain.info/';
19
20
    private function Uri($uri){
21
        return self::URL.'/'.$uri;
22
    }
23
24
    /**
25
     * @param string $method
26
     * @param string $uri
27
     * @param array $params
28
     * @return array
29
     * @throws \Appino\Blockchain\Exception\HttpError
30
     */
31
    private function call($method, $uri, $params = array()){
32
        return $this->blockchain->Request($method, $this->Uri($uri), $params);
33
    }
34
35
    public function Rates(){
36
        $response = $this->call('GET','ticker');
37
        $rates = array();
38
        foreach ($response as $Currency => $params){
39
            $rates[$Currency] = new Rate($Currency, $params);
40
        }
41
        return $rates;
42
    }
43
44
    public function ToBTC($currency, $amount){
45
        $params = [
46
            'currency' => $currency,
47
            'value' => $amount
48
        ];
49
        $params = array_merge($this->params, $params);
0 ignored issues
show
Bug Best Practice introduced by
The property params does not exist on Appino\Blockchain\Classes\Exchange. Did you maybe forget to declare it?
Loading history...
50
        $response = $this->call('GET','',$params);
51
        return new ReceiveResponse($response);
52
    }
53
54
}
55