File Coverage

blib/lib/WWW/VastAI/API/EnvVars.pm
Criterion Covered Total %
statement 23 23 100.0
branch 6 12 50.0
condition 0 3 0.0
subroutine 7 7 100.0
pod 4 4 100.0
total 40 49 81.6


line stmt bran cond sub pod time code
1             package WWW::VastAI::API::EnvVars;
2             our $VERSION = '0.001';
3             # ABSTRACT: Environment variable and secret management for Vast.ai
4              
5 10     10   64 use Moo;
  10         20  
  10         63  
6 10     10   3943 use Carp qw(croak);
  10         23  
  10         772  
7 10     10   63 use namespace::clean;
  10         21  
  10         77  
8              
9             has client => (
10             is => 'ro',
11             required => 1,
12             weak_ref => 1,
13             );
14              
15             sub list {
16 1     1 1 1446 my ($self) = @_;
17 1         8 my $result = $self->client->request_op('listEnvVars');
18 1 50 0     9 return ref $result eq 'HASH' ? ($result->{secrets} || $result->{results} || $result) : $result;
19             }
20              
21             sub create {
22 1     1 1 1795 my ($self, %params) = @_;
23 1 50       5 croak "name required" unless $params{name};
24 1 50       5 croak "value required" unless exists $params{value};
25 1         8 return $self->client->request_op('createEnvVar', body => \%params);
26             }
27              
28             sub update {
29 1     1 1 15 my ($self, %params) = @_;
30 1 50       7 croak "name required" unless $params{name};
31 1 50       5 croak "value required" unless exists $params{value};
32 1         7 return $self->client->request_op('updateEnvVar', body => \%params);
33             }
34              
35             sub delete {
36 1     1 1 14 my ($self, $name) = @_;
37 1 50       6 croak "name required" unless defined $name;
38 1         8 return $self->client->request_op('deleteEnvVar', body => { name => $name });
39             }
40              
41             1;
42              
43             __END__