Completed
Push — master ( e8241e...60d0c3 )
by
unknown
04:24 queued 02:47
created

Client::getResponse()   B

Complexity

Conditions 6
Paths 5

Size

Total Lines 20
Code Lines 10

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 7
CRAP Score 6.972

Importance

Changes 0
Metric Value
dl 0
loc 20
ccs 7
cts 10
cp 0.7
rs 8.8571
c 0
b 0
f 0
cc 6
eloc 10
nc 5
nop 2
crap 6.972
1
<?php
2
3
namespace Lan\Ebs\Sdk;
4
5
use Exception;
6
use Lan\Ebs\Sdk\Helper\Curl;
7
use Lan\Ebs\Sdk\Helper\Debuger;
8
9
final class Client
10
{
11
    private $token = '';
12
13
    /**
14
     * Ebs constructor.
15
     *
16
     * @param  $token
17
     * @throws Exception
18
     */
19 18
    public function __construct($token)
20
    {
21 18
        if (empty($token)) {
22
            throw new Exception('Token is empty');
23
        }
24
25 18
        $this->token = $token;
26 18
    }
27
28
    /**
29
     * @param array $request
30
     * @param array $params
31
     * @return array|mixed
32
     * @throws Exception
33
     */
34 6
    public function getResponse(array $request, array $params = [])
35
    {
36 6
        if (empty($request['url']) || empty($request['method']) || empty($request['code'])) {
37
            throw new Exception('Request url, method or success_code is missing');
38
        }
39
40 6
        $host = Security::getApiHost();
41
42 6
        $response = Curl::getResponse($host, $request['url'], $request['method'], $this->token, $params);
43
44 6
        if (isset($response['debug'])) {
45
            Debuger::dump(['host' => $host, 'request' => $request, 'params' => $params, 'response' => $response]);
46
        }
47
48 6
        if ($response['status'] != $request['code']) {
49 6
            throw new Exception($response['message'], $response['status']);
50
        }
51
52
        return $response;
53
    }
54
}