Passed
Push — master ( f32712...07732c )
by Vladislav
04:33 queued 01:39
created

KlineRequest::getInterval()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
namespace Carpenstar\ByBitAPI\Derivatives\MarketData\Kline\Request;
3
4
use Carpenstar\ByBitAPI\Core\Helpers\DateTimeHelper;
5
use Carpenstar\ByBitAPI\Core\Helpers\StringHelper;
6
use Carpenstar\ByBitAPI\Core\Objects\AbstractParameters;
7
use Carpenstar\ByBitAPI\Derivatives\MarketData\Kline\Interfaces\IKlineRequestInterface;
8
9
class KlineRequest extends AbstractParameters implements IKlineRequestInterface
10
{
11
    /**
12
     * Product type. linear only at now
13
     * @var string $category
14
     */
15
    protected string $category = "linear";
16
17
    /**
18
     * Symbol name
19
     * @var string $symbol
20
     */
21
    protected string $symbol;
22
23
    /**
24
     * Kline interval. 1 3 5 15 30 60 120 240 360 720 D M W
25
     * @var string $interval
26
     */
27
    protected string $interval;
28
29
    /**
30
     * The start timestamp (ms)
31
     * @var \DateTime $startTime
32
     */
33
    protected \DateTime $startTime;
34
35
    /**
36
     * The end timestamp (ms)
37
     * @var \DateTime $endTime
38
     */
39
    protected \DateTime $endTime;
40
41
    /**
42
     * Limit for data size per page. [1, 200]. Default: 200
43
     * @var int $limit
44
     */
45
    protected int $limit = 200;
46
47
    public function __construct()
48
    {
49
        $this
50
            ->setRequiredField('symbol')
51
            ->setRequiredField('interval')
52
            ->setRequiredField('startTime')
53
            ->setRequiredField('endTime');
54
    }
55
56
    /**
57
     * @return string
58
     */
59
    public function getCategory(): string
60
    {
61
        return $this->category;
62
    }
63
64
    /**
65
     * @param string $symbol
66
     * @return KlineRequest
67
     */
68
    public function setSymbol(string $symbol): self
69
    {
70
        $this->symbol = $symbol;
71
        return $this;
72
    }
73
74
    /**
75
     * @return string
76
     */
77
    public function getSymbol(): string
78
    {
79
        return $this->symbol;
80
    }
81
82
    /**
83
     * @param string $interval
84
     * @return KlineRequest
85
     */
86
    public function setInterval(string $interval): self
87
    {
88
        $this->interval = StringHelper::clearInterval($interval);
89
        return $this;
90
    }
91
92
    /**
93
     * @return string
94
     */
95
    public function getInterval(): string
96
    {
97
        return $this->interval;
98
    }
99
100
    /**
101
     * @param int $startTime
102
     * @return KlineRequest
103
     */
104
    public function setStartTime(int $startTime): self
105
    {
106
        $this->startTime = DateTimeHelper::makeFromTimestamp($startTime);
107
        return $this;
108
    }
109
110
    /**
111
     * @return \DateTime
112
     */
113
    public function getStartTime(): \DateTime
114
    {
115
        return $this->startTime;
116
    }
117
118
    /**
119
     * @param int $endTime
120
     * @return KlineRequest
121
     */
122
    public function setEndTime(int $endTime): self
123
    {
124
        $this->endTime = DateTimeHelper::makeFromTimestamp($endTime);
125
        return $this;
126
    }
127
128
    /**
129
     * @return \DateTime
130
     */
131
    public function getEndTime(): \DateTime
132
    {
133
        return $this->endTime;
134
    }
135
136
    /**
137
     * @param int $limit
138
     * @return KlineRequest
139
     */
140
    public function setLimit(int $limit): self
141
    {
142
        $this->limit = $limit;
143
        return $this;
144
    }
145
146
    /**
147
     * @return int
148
     */
149
    public function getLimit(): int
150
    {
151
        return $this->limit;
152
    }
153
}