######################################################################
package Net::Amazon::Response::Wishlist;
######################################################################
use warnings;
use strict;
use base qw(Net::Amazon::Response);
use Net::Amazon::Property;
use Data::Dumper;
use Log::Log4perl qw(:easy get_logger);
##################################################
sub new {
##################################################
my($class, %options) = @_;
my $self = $class->SUPER::new(%options);
bless $self, $class; # reconsecrate
}
##################################################
sub xmlref_add {
##################################################
my($self, $xmlref) = @_;
my $nof_items_added = 0;
unless(ref($self->{xmlref}) eq "HASH" &&
ref($self->{xmlref}->{Items}) eq "ARRAY") {
$self->{xmlref}->{Items} = [];
}
if(ref($xmlref->{Lists}->{List}->{ListItem}) eq "ARRAY") {
push @{$self->{xmlref}->{Items}},
$_->{Item} for @{$xmlref->{Lists}->{List}->{ListItem}};
$nof_items_added = scalar @{$xmlref->{Lists}->{List}->{ListItem}};
} else {
push @{$self->{xmlref}->{Items}},
$xmlref->{Lists}->{List}->{ListItem}->{Item};
$nof_items_added = 1;
}
DEBUG("xmlref_add (after):", Data::Dumper::Dumper($self));
return $nof_items_added;
}
##################################################
sub current_page {
##################################################
# This is a, "I cannot determine because Amazon won't tell me."
}
##################################################
sub set_total_results {
##################################################
# This is a, "I cannot determine because Amazon won't tell me."
}
##################################################
sub is_page_available {
##################################################
my($self, $ref, $new_items, $page) = @_;
DEBUG("Trying to fetch additional wishlist page (AMZN bug)");
return ($Net::Amazon::IS_CANNED) ? $new_items == 10 : $new_items > 0;
}
##################################################
sub is_page_error {
##################################################
my($self, $ref, $res) = @_;
if(exists $ref->{Lists}->{Request}->{Errors}) {
my $errref = $ref->{Lists}->{Request}->{Errors};
if (ref($errref->{Error}) eq "ARRAY") {
my @errors;
for my $e (@{$errref->{Error}}) {
return -1 if $e =~ /Valid values must be/;
push @errors, $e->{Message};
}
# multiple errors, set arrary ref
$res->messages( @errors );
} else {
# single error, create array
return -1 if $errref->{Error}->{Message} =~ /Valid values must be/;
$res->messages( [ $errref->{Error}->{Message} ] );
}
ERROR("Fetch Error: " . $res->message );
$res->status("");
return 0;
}
return 1;
}
##################################################
sub as_string {
##################################################
my($self) = @_;
return $self->SUPER::list_as_string($self->properties);
}
1;
syntax highlighted by Code2HTML, v. 0.9.1