Business-CyberSource
view release on metacpan or search on metacpan
lib/Business/CyberSource/RequestPart/BillTo.pm view on Meta::CPAN
package Business::CyberSource::RequestPart::BillTo;
use strict;
use warnings;
use namespace::autoclean;
our $VERSION = '0.010008'; # VERSION
use Moose;
extends 'Business::CyberSource::MessagePart';
with 'MooseX::RemoteHelper::CompositeSerialization';
use MooseX::Aliases;
use MooseX::Types::Common::String qw( NonEmptySimpleStr );
use MooseX::Types::Email qw( EmailAddress );
use MooseX::Types::NetAddr::IP qw( NetAddrIPv4 );
use MooseX::Types::CyberSource qw(
CountryCode
_VarcharTen
_VarcharTwenty
_VarcharFifty
_VarcharSixty
);
use Moose::Util 'throw_exception';
use Moose::Util::TypeConstraints;
sub BUILD { ## no critic ( Subroutines::RequireFinalReturn )
my $self = shift;
if ( $self->country eq 'US' or $self->country eq 'CA' ) {
throw_exception(AttributeIsRequired =>
attribute_name => 'postal_code',
class_name => __PACKAGE__,
message => 'Attribute ('
. 'postal_code'
. ') is required for US or Canada',
) unless $self->has_postal_code;
throw_exception(AttributeIsRequired =>
attribute_name => 'state',
class_name => __PACKAGE__,
message => 'Attribute ('
. 'state'
. ') is required for US or Canada',
) unless $self->has_state;
}
}
has first_name => (
remote_name => 'firstName',
required => 1,
is => 'ro',
isa => _VarcharSixty,
);
has last_name => (
remote_name => 'lastName',
required => 1,
is => 'ro',
isa => _VarcharSixty,
);
has street1 => (
remote_name => 'street1',
( run in 0.915 second using v1.01-cache-2.11-cpan-39bf76dae61 )