File Coverage

blib/lib/WWW/ARDB/Request.pm
Criterion Covered Total %
statement 31 31 100.0
branch 1 2 50.0
condition n/a
subroutine 12 12 100.0
pod 6 6 100.0
total 50 51 98.0


line stmt bran cond sub pod time code
1             package WWW::ARDB::Request;
2             our $AUTHORITY = 'cpan:GETTY';
3              
4             # ABSTRACT: HTTP request factory for WWW::ARDB
5              
6 6     6   125886 use Moo;
  6         9731  
  6         72  
7 6     6   4318 use HTTP::Request;
  6         32258  
  6         202  
8 6     6   42 use URI;
  6         16  
  6         231  
9 6     6   557 use namespace::clean;
  6         19612  
  6         54  
10              
11             our $VERSION = '0.002';
12              
13 6     6   2109 use constant BASE_URL => 'https://ardb.app/api';
  6         44  
  6         2590  
14              
15              
16             sub items {
17 9     9 1 379041 my ($self, %params) = @_;
18 9         42 return $self->_build_request('items', %params);
19             }
20              
21              
22             sub item {
23 4     4 1 2962 my ($self, $id, %params) = @_;
24 4         24 return $self->_build_request("items/$id", %params);
25             }
26              
27              
28             sub quests {
29 7     7 1 1254 my ($self, %params) = @_;
30 7         28 return $self->_build_request('quests', %params);
31             }
32              
33              
34             sub quest {
35 3     3 1 1154 my ($self, $id, %params) = @_;
36 3         17 return $self->_build_request("quests/$id", %params);
37             }
38              
39              
40             sub arc_enemies {
41 6     6 1 2091 my ($self, %params) = @_;
42 6         20 return $self->_build_request('arc-enemies', %params);
43             }
44              
45              
46             sub arc_enemy {
47 3     3 1 1249 my ($self, $id, %params) = @_;
48 3         15 return $self->_build_request("arc-enemies/$id", %params);
49             }
50              
51              
52             sub _build_request {
53 32     32   110 my ($self, $endpoint, %params) = @_;
54              
55 32         285 my $uri = URI->new(BASE_URL . '/' . $endpoint);
56 32 50       41475 $uri->query_form(%params) if %params;
57              
58 32         155 return HTTP::Request->new(
59             GET => $uri->as_string,
60             [
61             'Accept' => 'application/json',
62             ],
63             );
64             }
65              
66             1;
67              
68             __END__