File Coverage

blib/lib/Apertur/SDK/Resource/Keys.pm
Criterion Covered Total %
statement 11 23 47.8
branch 0 2 0.0
condition n/a
subroutine 4 9 44.4
pod 5 6 83.3
total 20 40 50.0


line stmt bran cond sub pod time code
1             package Apertur::SDK::Resource::Keys;
2              
3 1     1   9 use strict;
  1         2  
  1         60  
4 1     1   7 use warnings;
  1         3  
  1         61  
5              
6 1     1   7 use JSON qw(encode_json);
  1         2  
  1         35  
7              
8             sub new {
9 3     3 0 6 my ($class, %args) = @_;
10 3         15 return bless { http => $args{http} }, $class;
11             }
12              
13             sub list {
14 0     0 1   my ($self, $project_id) = @_;
15 0           return $self->{http}->request('GET', "/api/v1/projects/$project_id/keys");
16             }
17              
18             sub create {
19 0     0 1   my ($self, $project_id, %options) = @_;
20             return $self->{http}->request(
21 0           'POST', "/api/v1/projects/$project_id/keys",
22             body => encode_json(\%options),
23             );
24             }
25              
26             sub update {
27 0     0 1   my ($self, $project_id, $key_id, %options) = @_;
28             return $self->{http}->request(
29 0           'PATCH', "/api/v1/projects/$project_id/keys/$key_id",
30             body => encode_json(\%options),
31             );
32             }
33              
34             sub delete {
35 0     0 1   my ($self, $project_id, $key_id) = @_;
36             return $self->{http}->request(
37 0           'DELETE', "/api/v1/projects/$project_id/keys/$key_id",
38             );
39             }
40              
41             sub set_destinations {
42 0     0 1   my ($self, $key_id, $destination_ids, $long_polling) = @_;
43              
44 0           my %payload = (destination_ids => $destination_ids);
45 0 0         $payload{long_polling_enabled} = $long_polling
46             if defined $long_polling;
47              
48             return $self->{http}->request(
49 0           'PUT', "/api/v1/keys/$key_id/destinations",
50             body => encode_json(\%payload),
51             );
52             }
53              
54             1;
55              
56             __END__