Net-Braintree
view release on metacpan or search on metacpan
lib/Net/Braintree/Configuration.pm view on Meta::CPAN
package Net::Braintree::Configuration;
use Net::Braintree::Gateway;
use Moose;
has merchant_id => (is => 'rw');
has partner_id => (is => 'rw');
has public_key => (is => 'rw');
has private_key => (is => 'rw');
has gateway => (is => 'ro', lazy => 1, default => sub { Net::Braintree::Gateway->new({config => shift})});
has environment => (
is => 'rw',
trigger => sub {
my ($self, $new_value, $old_value) = @_;
if ($new_value !~ /integration|development|sandbox|production|qa/) {
warn "Assigned invalid value to Net::Braintree::Configuration::environment";
}
if ($new_value eq "integration") {
$self->public_key("integration_public_key");
$self->private_key("integration_private_key");
$self->merchant_id("integration_merchant_id");
}
}
);
sub base_merchant_path {
my $self = shift;
return "/merchants/" . $self->merchant_id;
}
sub base_merchant_url {
my $self = shift;
return $self->base_url() . $self->base_merchant_path;
}
sub base_url {
my $self = shift;
return $self->protocol . "://" . $self->server . ':' . $self->port;
}
sub port {
my $self = shift;
if($self->environment =~ /integration|development/) {
return $ENV{'GATEWAY_PORT'} || "3000"
} else {
return "443";
}
}
sub server {
my $self = shift;
return "localhost" if $self->environment eq 'integration';
return "localhost" if $self->environment eq 'development';
return "api.sandbox.braintreegateway.com" if $self->environment eq 'sandbox';
return "api.braintreegateway.com" if $self->environment eq 'production';
return "qa-master.braintreegateway.com" if $self->environment eq 'qa';
}
sub auth_url {
my $self = shift;
return "http://auth.venmo.dev:9292" if $self->environment eq 'integration';
return "http://auth.venmo.dev:9292" if $self->environment eq 'development';
return "https://auth.sandbox.venmo.com" if $self->environment eq 'sandbox';
return "https://auth.venmo.com" if $self->environment eq 'production';
return "https://auth.qa.venmo.com" if $self->environment eq 'qa';
}
sub ssl_enabled {
my $self = shift;
return ($self->environment !~ /integration|development/);
}
sub protocol {
my $self = shift;
return $self->ssl_enabled ? 'https' : 'http';
}
sub api_version {
return "4";
}
( run in 0.579 second using v1.01-cache-2.11-cpan-39bf76dae61 )