#!/usr/bin/perl

use strict;
use warnings;

use Business::Shipping;
use Business::Shipping::Shipment;
use Business::Shipping::Shipment::UPS;
use Business::Shipping::Shipment::USPS;
use Business::Shipping::Package;
use Business::Shipping::Package::UPS;
use Business::Shipping::Package::USPS;
use Business::Shipping::RateRequest;
use Business::Shipping::RateRequest::Online;
use Business::Shipping::RateRequest::Online::UPS;
use Business::Shipping::RateRequest::Online::USPS;
my $rate_request;


###############################################################################
##  Domestic
###############################################################################
#$rate_request = Business::Shipping->rate_request(
#	shipper 		=> 'USPS', 
#	service 		=> 'Priority',
#	
#	user_id 		=> $ENV{ USPS_USER_ID },		
#	password 		=> $ENV{ USPS_PASSWORD },
#
#	from_zip		=> '98682',
#	to_zip			=> '98270',
#	
#	weight			=> '7',
#);
#
#not defined $rate_request and die $@;
#
#$rate_request->submit() or die $rate_request->error();
#
#print "\$" . $rate_request->total_charges() . "\n";

###############################################################################
##  International
###############################################################################
print "\n\n\nTesting International USPS...\n\n";
$rate_request = Business::Shipping->rate_request(
		shipper 		=> 'USPS', 
		event_handlers => { 'trace' => 'STDERR', debug => 'STDERR', debug3 => 'STDERR' },
		user_id 		=> $ENV{ USPS_USER_ID },		
		password 		=> $ENV{ USPS_PASSWORD },
		
		service 		=> 'Airmail Letter-post',

		from_zip		=> '98682',
		'to_zip' => "N2H6S9",
		to_country => 'Canada',
		'weight' => "0.25",
);

not defined $rate_request and die $@;

$rate_request->submit() or die $rate_request->error();

my $total_charges = $rate_request->total_charges();

if ( $total_charges ) {
	print "\$$total_charges\n";
}
else {
	print "Error -- charges were \$0.00.\n";
}

