Amazon-MWS
view release on metacpan or search on metacpan
lib/Amazon/MWS/Routines.pm view on Meta::CPAN
} else {
$request->{_content} = "$canonical&Signature=$params{Signature}";
}
$request->uri($uri);
return $request;
}
sub convert {
my ($hash, $key, $type) = @_;
$hash->{$key} = from_amazon($type, $hash->{$key});
}
sub new {
my($pkg, %opts) = @_;
$opts{configfile} ||= 'amazon.xml';
if (-r $opts{configfile} ) {
my $xmlconfig = XML::Simple::XMLin("$opts{configfile}");
$opts{access_key_id} ||= $xmlconfig->{access_key_id};
$opts{secret_key} ||= $xmlconfig->{secret_key};
$opts{merchant_id} ||= $xmlconfig->{merchant_id};
$opts{marketplace_id} ||= $xmlconfig->{marketplace_id};
$opts{endpoint} ||= $xmlconfig->{endpoint};
$opts{debug} ||= $xmlconfig->{debug};
$opts{logfile} ||= $xmlconfig->{logfile};
}
my $attr = $opts->{agent_attributes};
$attr->{Language} = 'Perl';
my $attr_str = join ';', map { "$_=$attr->{$_}" } keys %$attr;
my $appname = $opts{Application} || 'Amazon::MWS::Client';
my $version = $opts{Version} || 0.5;
my $agent_string = "$appname/$version ($attr_str)";
die 'No access key id' unless $opts{access_key_id};
die 'No secret key' unless $opts{secret_key};
die 'No merchant id' unless $opts{merchant_id};
die 'No marketplace id' unless $opts{marketplace_id};
if ($opts{debug}) {
open LOG, ">$opts{logfile}" or die "Cannot open logfile.";
print LOG DateTime->now();
print LOG "\nNew instance created. \n";
print LOG Dumper(\%opts);
close LOG;
}
# https://github.com/interchange/Amazon-MWS/issues/9
$opts{endpoint} ||= 'https://mws.amazonaws.com';
# strip the trailing slashes
$opts{endpoint} =~ s/\/+\z//;
bless {
package => "$pkg",
agent => LWP::UserAgent->new(agent => $agent_string),
endpoint => $opts{endpoint},
access_key_id => $opts{access_key_id},
secret_key => $opts{secret_key},
merchant_id => $opts{merchant_id},
marketplace_id => $opts{marketplace_id},
debug => $opts{debug},
logfile => $opts{logfile},
}, $pkg;
}
1;
# Local Variables:
# tab-width: 8
# End:
( run in 3.333 seconds using v1.01-cache-2.11-cpan-f56aa216473 )