diff options
Diffstat (limited to 'lib/Net/Amazon/Response.pm')
| -rw-r--r-- | lib/Net/Amazon/Response.pm | 214 |
1 files changed, 0 insertions, 214 deletions
diff --git a/lib/Net/Amazon/Response.pm b/lib/Net/Amazon/Response.pm deleted file mode 100644 index 6147e0e..0000000 --- a/lib/Net/Amazon/Response.pm +++ /dev/null @@ -1,214 +0,0 @@ -###################################################################### -package Net::Amazon::Response; -###################################################################### -use warnings; -use strict; - -use base qw(Net::Amazon); - -use Text::Wrap qw($columns wrap); -use XML::Simple; - -our @FORCE_ARRAY_FIELDS = (); - -__PACKAGE__->make_accessor($_) for qw( - status messages items xmlref total_results); - -################################################## -sub new { -################################################## - my($class, %options) = @_; - - my $self = { - status => "", - messages => [], - items => [], - xmlref => {}, - total_results => undef, - }; - - bless $self, $class; -} - -sub message { - my($self) = @_; - - return join(";",@{$self->{messages}}); -} - -########################################### -sub is_success { -########################################### - my($self) = @_; - - return $self->{status} ? 1 : ""; -} - -########################################### -sub is_error { -########################################### - my($self) = @_; - - return !$self->is_success(); -} - -########################################### -sub push_item { -########################################### - my($self, $item) = @_; - - push @{$self->{items}}, $item; -} - -########################################### -sub as_string { -########################################### - my($self) = @_; - - return Data::Dumper::Dumper($self); -} - -########################################### -sub list_as_string { -########################################### - my($self, @properties) = @_; - - my $full = ""; - - # Column with - $columns = 60; - my $bullet = 1; - - foreach my $property (@properties) { - $full .= "\n" if $full; - my $bullet_string = sprintf("[%d]%s", - $bullet, (" " x (3-length($bullet)))); - $full .= wrap("", " ", $bullet_string . $property->as_string()); - $bullet++; - } - - return $full; -} - -################################################## -sub properties { -################################################## - my($self) = @_; - - my @properties = (); - - if($self->is_success && ref($self->{xmlref}->{Details}) eq 'ARRAY') { - foreach my $xmlref (@{$self->{xmlref}->{Details}}) { - my $property = Net::Amazon::Property::factory(xmlref => $xmlref); - push @properties, $property; - } - } - - if(wantarray) { - return (@properties); - } - - if(@properties) { - # Scalar context and we've got results. Return the first one. - return $properties[0]; - } - - # Scalar context and we don't have anything. - return undef; -} - -################################################## -sub xml_parse { -################################################## - my($self, $xml) = @_; - - my $xs = XML::Simple->new(); - return $xs->XMLin($xml, ForceArray => [ @FORCE_ARRAY_FIELDS ]); -} - -1; - -__END__ - -=head1 NAME - -Net::Amazon::Response - Baseclass for responses from Amazon's web service - -=head1 SYNOPSIS - - $resp = $ua->request($request); - - if($resp->is_success()) { - print $resp->as_string(); - } - - if($resp->is_error()) { - print $resp->message(); - } - - if($resp->is_success()) { - for my $property ($resp->properties) { - print $property->as_string(), "\n"; - } - } - -=head1 DESCRIPTION - -C<Net::Amazon::Response> is the baseclass for responses coming back -from the useragent's C<request> method. Responses are typically -not of type C<Net::Amazon::Response> but one of its subclasses -C<Net::Amazon::Response::*>. However, for basic error handling and -dumping content, C<Net::Amazon::Response>'s methods are typically used, -because we typically don't know what type of object we're -actually dealing with. - -=head2 METHODS - -=over 4 - -=item is_success() - -Returns true if the request was successful. This doesn't mean any objects -have been found, it just indicates a successful roundtrip. - -=item is_error() - -Returns true if an error occurred. Use C<message()> to determine what -kind of error. - -=item properties() - -Returns the list of C<Net::Amazon::Property> objects which were found -by the query. - -=item as_string() - -Dumps the content of the response. - -=item message() - -Returns the error message as a string in case an error occurred. In case -several errors occurred, they're stringed together. Look up C<messages()> -if you need them separated. - -=item messages() - -Returns all error messages for a response as a reference to an array -of string messages. - -=back - -=head1 SEE ALSO - -=head1 AUTHOR - -Mike Schilli, E<lt>m@perlmeister.comE<gt> - -=head1 COPYRIGHT AND LICENSE - -Copyright 2003 by Mike Schilli E<lt>m@perlmeister.comE<gt> - -This library is free software; you can redistribute it and/or modify -it under the same terms as Perl itself. - -=cut |
