WebService-Etsy
view release on metacpan or search on metacpan
lib/WebService/Etsy.pm view on Meta::CPAN
return;
}
my $params = join "&", map{ "$_=$params{ $_ }" } keys %params;
$uri = $args{ base_uri } . $self->_sandbox . '/' . $method_info->{visibility} . $uri . "?" . $params;
my $resp = $args{ ua }->get( $uri );
my $log_msg = $uri . "," . $resp->code;
if ( ! $resp->is_success ) {
$log_msg .= "," . $resp->content;
$self->log( $log_msg );
$self->last_error( "Error getting resource $uri: " . $resp->status_line );
return;
}
$self->log( $log_msg );
my $data = from_json( $resp->content );
my $detail = ( $data->{ params } && ref $data->{ params } eq "HASH" ) ? $data->{ params }->{ detail_level } : undef;
my $class = 'WebService::Etsy::Resource::' . $method_info->{ type };
for ( 0 .. $#{ $data->{ results } } ) {
my %extra = ( api => $self );
if ( $detail ) {
$extra{ detail_level } = $detail;
}
$data->{ results }->[ $_ ] = $class->new( $data->{ results }->[ $_ ], %extra );
}
return bless $data, "WebService::Etsy::Response";
}
sub _sandbox {
my $self = shift;
return ($self->use_sandbox) ? '/sandbox' : '';
}
sub log {
my ( $self, $msg ) = @_;
my $fh = $self->_log_fh || return;
$fh->print( time . "," . $$ . "," . $msg . "\n" );
}
sub log_file {
my ( $self, $file ) = @_;
if ( $file ) {
my $fh = IO::File->new;
$fh->open( ">>" . $file ) or croak qq(Can't open log file $file: $!);
$self->_log_fh( $fh );
}
return;
}
sub DESTROY {
my $self = shift;
my $fh = $self->_log_fh;
$fh->close if $fh;
}
=head1 SEE ALSO
L<http://www.etsy.com/storque/etsy-news/tech-updates-handmade-code-etsys-beta-api-3055/>, L<http://developer.etsy.com/>, L<WebService::Etsy::Response>, L<WebService::Etsy::Resource>.
=head1 AUTHOR
Ian Malpass (ian-cpan@indecorous.com)
=head1 COPYRIGHT
Copyright 2009, Ian Malpass
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.
=cut
1;
( run in 1.525 second using v1.01-cache-2.11-cpan-df04353d9ac )