File Coverage

blib/lib/WebService/Braintree/CreditCardGateway.pm
Criterion Covered Total %
statement 18 34 52.9
branch 0 8 0.0
condition n/a
subroutine 6 13 46.1
pod 0 5 0.0
total 24 60 40.0


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