File Coverage

blib/lib/WebService/BitFlyer/API.pm
Criterion Covered Total %
statement 12 106 11.3
branch 0 42 0.0
condition 0 26 0.0
subroutine 4 27 14.8
pod 0 24 0.0
total 16 225 7.1


line stmt bran cond sub pod time code
1             package WebService::BitFlyer::API;
2 4     4   365826 use strict;
  4         22  
  4         179  
3 4     4   33 use warnings;
  4         7  
  4         241  
4             use Class::Accessor::Lite (
5 4         26 ro => [qw/
6             client
7             /],
8 4     4   584 );
  4         1174  
9              
10             # https://lightning.bitflyer.jp/docs
11              
12             sub new {
13 1     1 0 3 my $class = shift;
14 1         3 my $client = shift;
15              
16 1         4 bless {
17             client => $client,
18             }, $class;
19             }
20              
21             sub markets {
22 0     0 0   my ($self, %params) = @_;
23              
24 0           my $req_params;
25              
26 0           my $res = $self->client->request(
27             'GET' => '/v1/markets',
28             $req_params,
29             );
30              
31 0           return $res;
32             }
33              
34             sub board {
35 0     0 0   my ($self, %params) = @_;
36              
37             my $req_params = {
38 0   0       product_code => $params{product_code} || 'BTC_JPY',
39             };
40              
41 0           my $res = $self->client->request(
42             'GET' => '/v1/board',
43             $req_params,
44             );
45              
46 0           return $res;
47             }
48              
49             sub ticker {
50 0     0 0   my ($self, %params) = @_;
51              
52             my $req_params = {
53 0   0       product_code => $params{product_code} || 'BTC_JPY',
54             };
55              
56 0           my $res = $self->client->request(
57             'GET' => '/v1/ticker',
58             $req_params,
59             );
60              
61 0           return $res;
62             }
63              
64             sub market_executions {
65 0     0 0   my ($self, %params) = @_;
66              
67             my %paginate = (
68             $params{count} ? (count => $params{count}) : (),
69             $params{before} ? (before => $params{before}) : (),
70 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
71             );
72              
73             my $req_params = {
74 0   0       product_code => $params{product_code} || 'BTC_JPY',
75             %paginate,
76             };
77              
78 0           my $res = $self->client->request(
79             'GET' => '/v1/executions',
80             $req_params,
81             );
82              
83 0           return $res;
84             }
85              
86             sub boardstate {
87 0     0 0   my ($self, %params) = @_;
88              
89             my $req_params = {
90 0   0       product_code => $params{product_code} || 'BTC_JPY',
91             };
92              
93 0           my $res = $self->client->request(
94             'GET' => '/v1/getboardstate',
95             $req_params,
96             );
97              
98 0           return $res;
99             }
100              
101             sub health {
102 0     0 0   my ($self, %params) = @_;
103              
104             my $req_params = {
105 0   0       product_code => $params{product_code} || 'BTC_JPY',
106             };
107              
108 0           my $res = $self->client->request(
109             'GET' => '/v1/gethealth',
110             $req_params,
111             );
112              
113 0           return $res;
114             }
115              
116             sub chats {
117 0     0 0   my ($self, %params) = @_;
118              
119             my $req_params = {
120             from_date => $params{from_date},
121 0           };
122              
123 0           my $res = $self->client->request(
124             'GET' => '/v1/getchats',
125             $req_params,
126             );
127              
128 0           return $res;
129             }
130              
131             sub permissions {
132 0     0 0   my ($self, %params) = @_;
133              
134 0           my $res = $self->client->request(
135             'GET' => '/v1/me/getpermissions',
136             );
137              
138 0           return $res;
139             }
140              
141             sub balance {
142 0     0 0   my ($self, %params) = @_;
143              
144 0           my $res = $self->client->request(
145             'GET' => '/v1/me/getbalance',
146             );
147              
148 0           return $res;
149             }
150              
151             sub collateral {
152 0     0 0   my ($self, %params) = @_;
153              
154 0           my $res = $self->client->request(
155             'GET' => '/v1/me/getcollateral',
156             );
157              
158 0           return $res;
159             }
160              
161             sub collateralaccounts {
162 0     0 0   my ($self, %params) = @_;
163              
164 0           my $res = $self->client->request(
165             'GET' => '/v1/me/getcollateralaccounts',
166             );
167              
168 0           return $res;
169             }
170              
171             sub coinins {
172 0     0 0   my ($self, %params) = @_;
173              
174             my %paginate = (
175             $params{count} ? (count => $params{count}) : (),
176             $params{before} ? (before => $params{before}) : (),
177 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
178             );
179              
180 0           my $req_params = {
181             %paginate,
182             };
183              
184 0           my $res = $self->client->request(
185             'GET' => '/v1/me/getcoinins',
186             $req_params,
187             );
188              
189 0           return $res;
190             }
191              
192             sub coinouts {
193 0     0 0   my ($self, %params) = @_;
194              
195             my %paginate = (
196             $params{count} ? (count => $params{count}) : (),
197             $params{before} ? (before => $params{before}) : (),
198 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
199             );
200              
201 0           my $req_params = {
202             %paginate,
203             };
204              
205 0           my $res = $self->client->request(
206             'GET' => '/v1/me/getcoinouts',
207             $req_params,
208             );
209              
210 0           return $res;
211             }
212              
213             sub bankaccounts {
214 0     0 0   my ($self, %params) = @_;
215              
216 0           my $res = $self->client->request(
217             'GET' => '/v1/me/getbankaccounts',
218             );
219              
220 0           return $res;
221             }
222              
223             sub deposits {
224 0     0 0   my ($self, %params) = @_;
225              
226             my %paginate = (
227             $params{count} ? (count => $params{count}) : (),
228             $params{before} ? (before => $params{before}) : (),
229 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
230             );
231              
232 0           my $req_params = {
233             %paginate,
234             };
235              
236 0           my $res = $self->client->request(
237             'GET' => '/v1/me/getdeposits',
238             $req_params,
239             );
240              
241 0           return $res;
242             }
243              
244             sub withdraw {
245 0     0 0   my ($self, %params) = @_;
246              
247             my $req_params = {
248             currency_code => $params{currency_code} || 'JPY',
249             bank_account_id => $params{bank_account_id},
250             amount => $params{amount},
251             code => $params{code},
252 0   0       };
253              
254 0           my $res = $self->client->request(
255             'POST' => '/v1/me/withdraw',
256             $req_params,
257             );
258              
259 0           return $res;
260             }
261              
262             sub withdrawals {
263 0     0 0   my ($self, %params) = @_;
264              
265             my %paginate = (
266             $params{count} ? (count => $params{count}) : (),
267             $params{before} ? (before => $params{before}) : (),
268 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
269             );
270              
271             my $req_params = {
272             message_id => $params{mesage_id},
273 0           %paginate,
274             };
275              
276 0           my $res = $self->client->request(
277             'GET' => '/v1/me/getwithdrawals',
278             $req_params,
279             );
280              
281 0           return $res;
282             }
283              
284             sub order {
285 0     0 0   my ($self, %params) = @_;
286              
287             my $req_params = {
288             product_code => $params{product_code} || 'BTC_JPY',
289             child_order_type => $params{child_order_type},
290             side => $params{side},
291             price => $params{price},
292             size => $params{size},
293             minute_to_expire => $params{minute_to_expire},
294 0   0       time_in_force => $params{time_in_force} || 'GTC',
      0        
295             };
296              
297 0           my $res = $self->client->request(
298             'POST' => '/v1/me/sendchildorder',
299             $req_params,
300             );
301              
302 0           return $res;
303             }
304              
305             sub cancel_order {
306 0     0 0   my ($self, %params) = @_;
307              
308             my $req_params = {
309             product_code => $params{product_code} || 'BTC_JPY',
310             child_order_id => $params{child_order_id},
311             child_order_acceptance_id => $params{child_order_acceptance_id},
312 0   0       };
313              
314 0           my $res = $self->client->request(
315             'POST' => '/v1/me/cancelchildorder',
316             $req_params,
317             );
318              
319 0           return $res;
320             }
321              
322             sub cancel_all {
323 0     0 0   my ($self, %params) = @_;
324              
325             my $req_params = {
326 0   0       product_code => $params{product_code} || 'BTC_JPY',
327             };
328              
329 0           my $res = $self->client->request(
330             'POST' => '/v1/me/cancelallchildorders',
331             $req_params,
332             );
333              
334 0           return $res;
335             }
336              
337             sub orders {
338 0     0 0   my ($self, %params) = @_;
339              
340             my %paginate = (
341             $params{count} ? (count => $params{count}) : (),
342             $params{before} ? (before => $params{before}) : (),
343 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
344             );
345              
346             my $req_params = {
347             product_code => $params{product_code} || 'BTC_JPY',
348             child_order_state => $params{child_order_state},
349             child_order_id => $params{child_order_id},
350             child_order_acceptance_id => $params{child_order_acceptance_id},
351             parent_order_id => $params{parent_order_id},
352 0   0       %paginate,
353             };
354              
355 0           my $res = $self->client->request(
356             'GET' => '/v1/me/getchildorders',
357             $req_params,
358             );
359              
360 0           return $res;
361             }
362              
363             sub executions {
364 0     0 0   my ($self, %params) = @_;
365              
366             my %paginate = (
367             $params{count} ? (count => $params{count}) : (),
368             $params{before} ? (before => $params{before}) : (),
369 0 0         $params{after} ? (after => $params{after}) : (),
    0          
    0          
370             );
371              
372             my $req_params = {
373             product_code => $params{product_code} || 'BTC_JPY',
374             child_order_id => $params{child_order_id},
375             child_order_acceptance_id => $params{child_order_acceptance_id},
376 0   0       %paginate,
377             };
378              
379 0           my $res = $self->client->request(
380             'GET' => '/v1/me/getexecutions',
381             $req_params,
382             );
383              
384 0           return $res;
385             }
386              
387              
388             sub trading_commission {
389 0     0 0   my ($self, %params) = @_;
390              
391             my $req_params = {
392 0   0       product_code => $params{product_code} || 'BTC_JPY',
393             };
394              
395 0           my $res = $self->client->request(
396             'GET' => '/v1/me/gettradingcommission',
397             $req_params,
398             );
399              
400 0           return $res;
401             }
402              
403             1;