File Coverage

blib/lib/SQS/Worker/Client.pm
Criterion Covered Total %
statement 17 20 85.0
branch n/a
condition n/a
subroutine 6 7 85.7
pod 0 2 0.0
total 23 29 79.3


line stmt bran cond sub pod time code
1             package SQS::Worker::Client {
2 8     8   2557722 use Moose;
  8         1144325  
  8         46  
3 8     8   51179 use Paws;
  8         4047583  
  8         317  
4 8     8   63 use JSON::MaybeXS;
  8         19  
  8         517  
5 8     8   4284 use MIME::Base64;
  8         4660  
  8         413  
6 8     8   3849 use Storable qw/nfreeze/;
  8         22506  
  8         2020  
7              
8             has queue_url => (is => 'ro', isa => 'Str', required => 1);
9             has region => (is => 'ro', isa => 'Str', required => 1);
10              
11             has serializer => (is => 'ro', isa => 'Str', default => 'json');
12             has _serializer => (is => 'ro', isa => 'HashRef[CodeRef]', default => sub {
13             return {
14             json => sub { return encode_json \@_; },
15             storable => sub { return encode_base64( nfreeze \@_ ); }
16             }
17             });
18              
19             has sqs => (is => 'ro', isa => 'Paws::SQS', lazy => 1, default => sub {
20             my $self = shift;
21             Paws->service('SQS', region => $self->region);
22             });
23              
24             sub serialize_params {
25 19     19 0 18095 my ($self, @params) = @_;
26              
27 19         464 $self->_serializer->{$self->serializer}(@params);
28             }
29              
30             sub call {
31 0     0 0   my ($self, @params) = @_;
32              
33 0           my $serialized = $self->serialize_params(@params);
34              
35 0           my $message_pack = $self->sqs->SendMessage(
36             MessageBody => $serialized,
37             QueueUrl => $self->queue_url
38             );
39             }
40             }
41             1;