File Coverage

lib/WebService/Braintree/CreditCardGateway.pm
Criterion Covered Total %
statement 23 39 58.9
branch 0 8 0.0
condition n/a
subroutine 8 15 53.3
pod 0 5 0.0
total 31 67 46.2


line stmt bran cond sub pod time code
1             package WebService::Braintree::CreditCardGateway;
2             $WebService::Braintree::CreditCardGateway::VERSION = '0.94';
3 20     20   423 use 5.010_001;
  20         67  
4 20     20   105 use strictures 1;
  20         150  
  20         755  
5              
6 20     20   1983 use Moose;
  20         54  
  20         122  
7             with 'WebService::Braintree::Role::MakeRequest';
8              
9 20     20   135597 use Carp qw(confess);
  20         47  
  20         1367  
10 20     20   126 use WebService::Braintree::Validations qw(verify_params credit_card_signature);
  20         43  
  20         933  
11 20     20   125 use WebService::Braintree::Util qw(validate_id);
  20         45  
  20         878  
12 20     20   138 use WebService::Braintree::Result;
  20         45  
  20         437  
13 20     20   108 use Try::Tiny;
  20         36  
  20         7488  
14              
15             has 'gateway' => (is => 'ro');
16              
17             sub create {
18 0     0 0   my ($self, $params) = @_;
19 0 0         confess "ArgumentError" unless verify_params($params, credit_card_signature);
20 0           $self->_make_request("/payment_methods/", "post", {credit_card => $params});
21             }
22              
23             sub delete {
24 0     0 0   my ($self, $token) = @_;
25 0           $self->_make_request("/payment_methods/credit_card/$token", "delete", undef);
26             }
27              
28             sub update {
29 0     0 0   my ($self, $token, $params) = @_;
30 0 0         confess "ArgumentError" unless verify_params($params, credit_card_signature);
31 0           $self->_make_request("/payment_methods/credit_card/$token", "put", {credit_card => $params});
32             }
33              
34             sub find {
35 0     0 0   my ($self, $token) = @_;
36 0 0         confess "NotFoundError" unless validate_id($token);
37 0           $self->_make_request("/payment_methods/credit_card/$token", "get", undef)->credit_card;
38             }
39              
40             sub from_nonce {
41 0     0 0   my ($self, $nonce) = @_;
42 0 0         confess "NotFoundError" unless validate_id($nonce);
43              
44             try {
45 0     0     return $self->_make_request("/payment_methods/from_nonce/$nonce", "get", undef)->credit_card;
46             } catch {
47 0     0     confess "Payment method with nonce $nonce locked, consumed or not found";
48             }
49 0           }
50              
51             __PACKAGE__->meta->make_immutable;
52              
53             1;
54             __END__