MessariClient   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 55
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 10
c 1
b 0
f 0
dl 0
loc 55
ccs 14
cts 14
cp 1
rs 10
wmc 7

6 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 2
A news() 0 3 1
A getBaseClient() 0 3 1
A assets() 0 3 1
A getBaseUri() 0 3 1
A markets() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Codenixsv\MessariApi;
6
7
use Codenixsv\ApiClient\BaseClient;
8
use Codenixsv\ApiClient\BaseClientInterface;
9
use Codenixsv\MessariApi\Api\Assets;
10
use Codenixsv\MessariApi\Api\Markets;
11
use Codenixsv\MessariApi\Api\News;
12
13
/**
14
 * Class MessariClient
15
 * @package Codenixsv\MessariApi
16
 */
17
class MessariClient
18
{
19
    protected const BASE_URI = 'https://data.messari.io/api/v1';
20
21
    /** @var BaseClientInterface */
22
    private $baseClient;
23
24
    /**
25
     * MessariClient constructor.
26
     * @param BaseClientInterface|null $baseClient
27
     */
28 20
    public function __construct(?BaseClientInterface $baseClient = null)
29
    {
30 20
        $this->baseClient = $baseClient ?: new BaseClient();
31 20
        $this->baseClient->setBaseUri($this->getBaseUri());
32 20
    }
33
34
    /**
35
     * @return BaseClientInterface
36
     */
37 17
    public function getBaseClient(): BaseClientInterface
38
    {
39 17
        return $this->baseClient;
40
    }
41
42
    /**
43
     * @return Assets
44
     */
45 1
    public function assets(): Assets
46
    {
47 1
        return new Assets($this);
48
    }
49
50
    /**
51
     * @return Markets
52
     */
53 1
    public function markets(): Markets
54
    {
55 1
        return new Markets($this);
56
    }
57
58
    /**
59
     * @return News
60
     */
61 1
    public function news(): News
62
    {
63 1
        return new News($this);
64
    }
65
66
    /**
67
     * @return string
68
     */
69 20
    private function getBaseUri(): string
70
    {
71 20
        return self::BASE_URI;
72
    }
73
}
74