File Coverage

blib/lib/WWW/Hetzner/Robot/API/Servers.pm
Criterion Covered Total %
statement 24 28 85.7
branch 1 4 25.0
condition 1 2 50.0
subroutine 8 9 88.8
pod 3 3 100.0
total 37 46 80.4


line stmt bran cond sub pod time code
1             package WWW::Hetzner::Robot::API::Servers;
2             # ABSTRACT: Hetzner Robot Servers API
3              
4             our $VERSION = '0.100';
5              
6 24     24   165 use Moo;
  24         55  
  24         145  
7 24     24   9444 use Carp qw(croak);
  24         55  
  24         1805  
8 24     24   12540 use WWW::Hetzner::Robot::Server;
  24         104  
  24         1062  
9 24     24   180 use namespace::clean;
  24         49  
  24         144  
10              
11              
12             has client => (
13             is => 'ro',
14             required => 1,
15             weak_ref => 1,
16             );
17              
18             sub _wrap {
19 5     5   7 my ($self, $data) = @_;
20 5         66 return WWW::Hetzner::Robot::Server->new(
21             client => $self->client,
22             %$data,
23             );
24             }
25              
26             sub _wrap_list {
27 2     2   4 my ($self, $list) = @_;
28 2         5 return [ map { $self->_wrap($_->{server}) } @$list ];
  4         3237  
29             }
30              
31             sub list {
32 2     2 1 2247 my ($self) = @_;
33 2         17 my $result = $self->client->get('/server');
34 2   50     10 return $self->_wrap_list($result // []);
35             }
36              
37              
38             sub get {
39 1     1 1 8733 my ($self, $server_number) = @_;
40 1 50       3 croak "Server number required" unless $server_number;
41 1         8 my $result = $self->client->get("/server/$server_number");
42 1         4 return $self->_wrap($result->{server});
43             }
44              
45              
46             sub update {
47 0     0 1   my ($self, $server_number, %params) = @_;
48 0 0         croak "Server number required" unless $server_number;
49 0           my $result = $self->client->post("/server/$server_number", \%params);
50 0           return $self->_wrap($result->{server});
51             }
52              
53              
54              
55             1.
56              
57             __END__