Assets   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 93
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 16
c 1
b 0
f 0
dl 0
loc 93
ccs 21
cts 21
cp 1
rs 10
wmc 6

6 Methods

Rating   Name   Duplication   Size   Complexity  
A getProfile() 0 6 1
A get() 0 6 1
A getMetrics() 0 6 1
A getAll() 0 3 1
A getMarketData() 0 7 1
A getTimeseries() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Codenixsv\MessariApi\Api;
6
7
use Exception;
8
9
/**
10
 * Class Assets
11
 * @package Codenixsv\MessariApi\Api
12
 */
13
class Assets extends Api
14
{
15
    /**
16
     * Get the paginated list of all assets and their metrics and profiles.
17
     *
18
     * @param array $params
19
     * @return array
20
     * @throws Exception
21
     */
22 2
    public function getAll($params = []): array
23
    {
24 2
        return $this->all('assets', $params);
25
    }
26
27
    /**
28
     * Get basic metadata for an asset.
29
     *
30
     * @param string $assetKey This "key" can be the asset's ID (unique), slug (unique), or symbol (non-unique)
31
     * @param string|null $fields pare down the returned fields (comma , separated, drill down with a slash /)
32
     * @return array
33
     * @throws Exception
34
     */
35 1
    public function get(string $assetKey, ?string $fields = null): array
36
    {
37 1
        $query = $this->queryBuilder->buildQuery(compact('fields'));
38 1
        $response = $this->client->getBaseClient()->get('/assets/' . strtolower($assetKey) . $query);
39
40 1
        return $this->transformer->transform($response);
41
    }
42
43
    /**
44
     * Get all of our qualitative information for an asset.
45
     *
46
     * @param string $assetKey This "key" can be the asset's ID (unique), slug (unique), or symbol (non-unique)
47
     * @param string|null $fields pare down the returned fields (comma , separated, drill down with a slash /)
48
     * @return array
49
     * @throws Exception
50
     */
51 1
    public function getProfile(string $assetKey, ?string $fields = null): array
52
    {
53 1
        $query = $this->queryBuilder->buildQuery(compact('fields'));
54 1
        $response = $this->client->getBaseClient()->get('/assets/' . strtolower($assetKey) . '/profile' . $query);
55
56 1
        return $this->transformer->transform($response);
57
    }
58
59
    /**
60
     * Get all of our quantitative metrics for an asset.
61
     *
62
     * @param string $assetKey This "key" can be the asset's ID (unique), slug (unique), or symbol (non-unique)
63
     * @param string|null $fields pare down the returned fields (comma , separated, drill down with a slash /)
64
     * @return array
65
     * @throws Exception
66
     */
67 1
    public function getMetrics(string $assetKey, ?string $fields = null): array
68
    {
69 1
        $query = $this->queryBuilder->buildQuery(compact('fields'));
70 1
        $response = $this->client->getBaseClient()->get('/assets/' . strtolower($assetKey) . '/metrics' . $query);
71
72 1
        return $this->transformer->transform($response);
73
    }
74
75
    /**
76
     * Get the latest market data for an asset. This data is also included in the metrics endpoint, but if all you need
77
     *  is market-data, use this.
78
     *
79
     * @param string $assetKey This "key" can be the asset's ID (unique), slug (unique), or symbol (non-unique)
80
     * @param string|null $fields pare down the returned fields (comma , separated, drill down with a slash /)
81
     * @return array
82
     * @throws Exception
83
     */
84 1
    public function getMarketData(string $assetKey, ?string $fields = null): array
85
    {
86 1
        $query = $this->queryBuilder->buildQuery(compact('fields'));
87 1
        $response = $this->client->getBaseClient()->get('/assets/' . strtolower($assetKey) . '/metrics'
88 1
            . '/market-data' . $query);
89
90 1
        return $this->transformer->transform($response);
91
    }
92
93
    /**
94
     * Retrieve historical timeseries data for an asset.
95
     *
96
     * @param string $assetKey This "key" can be the asset's ID (unique), slug (unique), or symbol (non-unique)
97
     * @param string $metricId The metricID is a unique identifier which describes the type of data returned by
98
     *  time-series endpoints.
99
     * @param array $params
100
     * @return array
101
     * @throws Exception
102
     */
103 2
    public function getTimeseries(string $assetKey, string $metricId, array $params = []): array
104
    {
105 2
        return $this->timeseries('assets', $assetKey, $metricId, $params);
106
    }
107
}
108