File Coverage

blib/lib/WebService/SendGrid/Newsletter/Lists/Email.pm
Criterion Covered Total %
statement 22 25 88.0
branch 1 4 25.0
condition n/a
subroutine 6 6 100.0
pod 2 2 100.0
total 31 37 83.7


line stmt bran cond sub pod time code
1 6     6   29 use strict;
  6         10  
  6         151  
2 6     6   27 use warnings;
  6         61  
  6         199  
3             package WebService::SendGrid::Newsletter::Lists::Email;
4              
5 6     6   33 use JSON;
  6         11  
  6         49  
6 6     6   3683 use parent 'WebService::SendGrid::Newsletter::Base';
  6         1191  
  6         35  
7              
8              
9             sub new {
10 2     2 1 8 my ($class, %args) = @_;
11            
12 2         5 my $self = {};
13 2         7 bless($self, $class);
14            
15 2         20 $self->{sgn} = $args{sgn};
16            
17 2         9 return $self;
18             }
19              
20              
21             sub add {
22 3     3 1 11 my ($self, %args) = @_;
23            
24 3         24 $self->_check_required_args([ qw( list data ) ], %args);
25              
26 2 50       13 if (ref $args{data} eq 'HASH') {
    0          
27             # Data is a hashref -- turn it into JSON
28 2         13 $args{data} = to_json($args{data}, $self->{sgn}{json_options});
29             }
30             elsif (ref $args{data} eq 'ARRAY') {
31             # Data is an arrayref of hashrefs -- turn each item into JSON
32             $args{data} = [
33 0         0 map { to_json($_, $self->{sgn}{json_options}); } @{$args{data}}
  0         0  
  0         0  
34             ];
35             }
36            
37 2         204 return $self->{sgn}->_send_request('lists/email/add', %args);
38             }
39              
40             1;
41              
42             __END__