File Coverage

blib/lib/WebService/Chroma/Tenant.pm
Criterion Covered Total %
statement 12 12 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod n/a
total 16 16 100.0


line stmt bran cond sub pod time code
1             package WebService::Chroma::Tenant;
2              
3 1     1   5 use Moo;
  1         1  
  1         5  
4              
5 1     1   773 use MooX::ValidateSubs;
  1         1482  
  1         6  
6 1     1   151252 use WebService::Chroma::DB;
  1         7  
  1         64  
7 1     1   11 use Types::Standard qw/Str ArrayRef HashRef/;
  1         2  
  1         8  
8              
9             validate_subs (
10             create_database => {
11             params => {
12             name => [Str]
13             }
14             },
15             get_database => {
16             params => {
17             name => [Str]
18             }
19             }
20             );
21              
22             has ua => (
23             is => 'ro',
24             required => 1,
25             );
26              
27             has name => (
28             is => 'ro',
29             required => 1,
30             );
31              
32             sub create_database {
33             my ($self, %data) = @_;
34            
35             $self->ua->post(
36             url => sprintf("/api/v2/tenants/%s/databases", $self->name),
37             data => \%data
38             );
39              
40             return $self->get_database(%data);
41             }
42              
43             sub get_database {
44             my ($self, %data) = @_;
45            
46             my $db = $self->ua->get(
47             url => sprintf("/api/v2/tenants/%s/databases/%s", $self->name, $data{name}),
48             );
49              
50             return WebService::Chroma::DB->new(
51             ua => $self->ua,
52             tenant => $self->name,
53             %{$db}
54             );
55             }
56              
57             1;
58              
59             __END__