Business-PaperlessTrans
view release on metacpan or search on metacpan
lib/Business/PaperlessTrans/Client.pm view on Meta::CPAN
package Business::PaperlessTrans::Client;
use strict;
use warnings;
use namespace::autoclean;
our $VERSION = '0.002000'; # VERSION
use Moose;
use Class::Load 0.20 'load_class';
use Data::Printer alias => 'Dumper';
use Carp;
use MooseX::Types::Path::Class qw( File Dir );
use File::ShareDir::ProjectDistDir qw( dist_file dist_dir );
use XML::Compile::WSDL11;
use XML::Compile::SOAP11;
use XML::Compile::Transport::SOAPHTTP;
with 'MooseY::RemoteHelper::Role::Client';
sub submit {
my ( $self, $request ) = @_;
my %request = %{ $self->_finalize_request( $request ) };
Dumper %request if $self->debug >= 1;
my ( $answer, $trace ) = $self->_get_call( $request->type )->( %request );
carp "REQUEST >\n" . $trace->request->as_string if $self->debug > 1;
carp "RESPONSE <\n" . $trace->response->as_string if $self->debug > 1;
Dumper $answer if $self->debug >= 1;
my $res = $answer->{parameters}{$request->type . 'Result'};
my $res_c = 'Business::PaperlessTrans::Response::' . $request->type;
return load_class( $res_c )->new( $res );
}
sub _finalize_request {
my ( $self, $request ) = @_;
my %request;
if ( $request->type eq 'TestConnection' ) {
%request = ( %{ $request->serialize },
token => {
TerminalID => $self->user,
TerminalKey => $self->pass,
},
);
}
else {
%request = ( req => {
%{ $request->serialize },
Token => {
TerminalID => $self->user,
TerminalKey => $self->pass,
},
TestMode => $self->test ? 'True' : 'False',
});
}
( run in 1.326 second using v1.01-cache-2.11-cpan-39bf76dae61 )