File Coverage

blib/lib/WebService/Braintree/CreditCardVerificationGateway.pm
Criterion Covered Total %
statement 12 33 36.3
branch 0 4 0.0
condition n/a
subroutine 4 10 40.0
pod 0 4 0.0
total 16 51 31.3


line stmt bran cond sub pod time code
1             package WebService::Braintree::CreditCardVerificationGateway;
2             $WebService::Braintree::CreditCardVerificationGateway::VERSION = '0.93';
3 1     1   8 use Moose;
  1         2  
  1         9  
4 1     1   8868 use WebService::Braintree::CreditCardVerificationSearch;
  1         6  
  1         60  
5 1     1   14 use WebService::Braintree::Util;
  1         3  
  1         131  
6 1     1   8 use Carp qw(confess);
  1         2  
  1         427  
7              
8             has 'gateway' => (is => 'ro');
9              
10             sub find {
11 0     0 0   my ($self, $id) = @_;
12 0 0         confess "NotFoundError" unless validate_id($id);
13 0           my $response = $self->gateway->http->get("/verifications/$id");
14 0           return WebService::Braintree::CreditCardVerification->new($response->{'verification'});
15             }
16              
17             sub search {
18 0     0 0   my ($self, $block) = @_;
19 0           my $search = WebService::Braintree::CreditCardVerificationSearch->new;
20 0           my $params = $block->($search)->to_hash;
21 0           my $response = $self->gateway->http->post("/verifications/advanced_search_ids", {search => $params});
22             return WebService::Braintree::ResourceCollection->new()->init($response, sub {
23 0     0     $self->fetch_verifications($search, shift);
24 0           });
25             }
26              
27             sub all {
28 0     0 0   my $self = shift;
29 0           my $response = $self->gateway->http->post("/verifications/advanced_search_ids");
30             return WebService::Braintree::ResourceCollection->new()->init($response, sub {
31 0     0     $self->fetch_verifications(WebService::Braintree::CreditCardVerificationSearch->new, shift);
32 0           });
33             }
34              
35             sub fetch_verifications {
36 0     0 0   my ($self, $search, $ids) = @_;
37 0           $search->ids->in($ids);
38 0 0         return [] if scalar @{$ids} == 0;
  0            
39 0           my $response = $self->gateway->http->post("/verifications/advanced_search/", {search => $search->to_hash});
40 0           my $attrs = $response->{'credit_card_verifications'}->{'verification'};
41 0           return to_instance_array($attrs, "WebService::Braintree::CreditCardVerification");
42             }
43              
44             __PACKAGE__->meta->make_immutable;
45             1;
46