File Coverage

blib/lib/AWS/S3/Request/DeleteMulti.pm
Criterion Covered Total %
statement 17 17 100.0
branch n/a
condition n/a
subroutine 4 4 100.0
pod 0 1 0.0
total 21 22 95.4


line stmt bran cond sub pod time code
1              
2             package AWS::S3::Request::DeleteMulti;
3              
4 1     1   1126 use Moose;
  1         3  
  1         10  
5 1     1   9921 use AWS::S3::Signer;
  1         2  
  1         64  
6 1     1   8 use AWS::S3::ResponseParser;
  1         2  
  1         436  
7              
8             with 'AWS::S3::Roles::Request';
9              
10             has 'bucket' => (
11             is => 'ro',
12             isa => 'Str',
13             required => 1,
14             );
15              
16             has 'keys' => (
17             is => 'ro',
18             isa => 'ArrayRef[Str]',
19             required => 1,
20             );
21              
22             has '_subresource' => (
23             is => 'ro',
24             isa => 'Str',
25             init_arg => undef,
26             default => 'delete'
27             );
28              
29              
30              
31             has '+_expect_nothing' => ( default => 0 );
32              
33             sub request {
34 1     1 0 2 my $s = shift;
35              
36 1         3 my $objects = join "\n", map { "<Object><Key>@{[ $_ ]}</Key></Object>" } @{ $s->keys };
  3         6  
  3         17  
  1         53  
37              
38 1         4 my $xml = <<"XML";
39             <?xml version="1.0" encoding="UTF-8"?>
40             <Delete>
41             $objects
42             </Delete>
43             XML
44              
45 1         78 my $signer = AWS::S3::Signer->new(
46             s3 => $s->s3,
47             method => 'POST',
48             uri => $s->_uri,
49             content => \$xml,
50             content_type => '',
51             );
52              
53 1         2542 $s->_send_request(
54             $signer->method => $signer->uri => {
55             Authorization => $signer->auth_header,
56             Date => $signer->date,
57             'content-md5' => $signer->content_md5,
58             },
59             $xml
60             );
61             }
62              
63             __PACKAGE__->meta->make_immutable;