#!/usr/bin/perl
###########################################
# reviews
# Mike Schilli, 2003 (m@perlmeister.com)
###########################################
use warnings;
use strict;

use Net::Amazon;
use Net::Amazon::Request::Review;

use Log::Log4perl qw(:easy);
Log::Log4perl->easy_init({level => $DEBUG, layout => '%F{1}-%L: %m%n'});

my $ua = Net::Amazon->new(
    token       => 'YOUR_AMZN_TOKEN',
);

die "usage: $0 asin\n(use 0201360683 as " .
    "an example)\n" unless defined $ARGV[0];

my $req = Net::Amazon::Request::Review->new(
    asin  => $ARGV[0],
);

  # Response is Net::Amazon::ASIN::Response
my $resp = $ua->request($req);

if($resp->is_success()) {
    for my $property ($resp->properties()) {
        print $property->as_string(), "\n";
        my $reviewset = $property->review_set();
        print "Average rating:    ", 
              $reviewset->average_customer_rating(), "\n";
        print "Number of reviews: ", 
              $reviewset->total_reviews(), "\n";
        for my $review ($reviewset->reviews()) {
            print "Review:\n";
            print "Comment: ", $review->comment(), "\n";
            print "Summary: ", $review->summary(), "\n";
            print "Rating:  ", $review->rating(), "\n";
        }
    }
} else {
    print "Error: ", 
          $resp->message(), "\n";
}
