Client   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 49
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
wmc 2
eloc 16
c 1
b 0
f 0
dl 0
loc 49
rs 10

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A makeRequest() 0 11 1
1
<?php
2
3
namespace Evilnet\Dotpay\DotpayApi;
4
5
use Evilnet\Dotpay\DotpayApi\Contracts\IRequest;
6
7
/**
8
 * Class Client
9
 * @package Evilnet\Dotpay\DotpayApi
10
 */
11
class Client
12
{
13
    /**
14
     * @var
15
     */
16
    private $username;
17
    /**
18
     * @var
19
     */
20
    private $password;
21
    /**
22
     * @var
23
     */
24
    private $base_url;
25
    /**
26
     * @var \GuzzleHttp\Client
27
     */
28
    private $client;
29
30
    /**
31
     * Client constructor.
32
     * @param $username
33
     * @param $password
34
     * @param $base_url
35
     */
36
    public function __construct($username, $password, $base_url)
37
    {
38
        $this->username = $username;
39
        $this->password = $password;
40
        $this->base_url = $base_url;
41
        $this->client = new \GuzzleHttp\Client();
42
    }
43
44
    /**
45
     * @param IRequest $request
46
     * @return mixed
47
     * @throws \GuzzleHttp\Exception\GuzzleException
48
     */
49
    public function makeRequest(IRequest $request)
50
    {
51
        $options = [
52
            'auth' => [
53
                $this->username,
54
                $this->password
55
            ],
56
            'headers' => ['content-type' => 'application/json', 'Accept' => 'application/json'],
57
            'body' => json_encode($request->toArray(), 320)
58
        ];
59
        return json_decode($this->client->request($request->method(),$this->base_url.$request->path(), $options)->getBody());
60
    }
61
}
62