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 )