Passed
Push — main ( 2ca57c...acfaba )
by Pouya
03:36
created

Exchange::call()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 2
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 3
dl 0
loc 2
rs 10
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