| WebService-BuzzurlAPI documentation | Contained in the WebService-BuzzurlAPI distribution. |
WebService::BuzzurlAPI::Response - Buzzurl WebService API response package
0.02
Buzzurl WebService API response package
Create instance
Analysis http response
Check response
Set error code and message
Get/Set error message
Get json2refrence(Readonly)
Get HTTP::Response instance(Readonly)
Akira Horimoto
Copyright (C) 2007 Akira Horimoto
This module is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
| WebService-BuzzurlAPI documentation | Contained in the WebService-BuzzurlAPI distribution. |
package WebService::BuzzurlAPI::Response;
use strict; use base qw(Class::Accessor); use JSON::Syck; __PACKAGE__->mk_accessors(qw(errstr)); __PACKAGE__->mk_ro_accessors(qw(json res)); our $VERSION = 0.02;
sub new { my($class, $res) = @_; if(ref($res) ne "HTTP::Response"){ croak("\$res is not \"HTTP::Response\" object"); } return bless { json => undef, res => $res }, $class || ref $class; }
sub analysis_response { my $self = shift; my $json; # response check # for WebService::BuzzurlAPI::Request::Add and if(!$self->res->is_success){ return $self->_error($self->res->code, $self->res->message); } # for redirect error if($self->res->content_type !~ /^application\/json/){ return $self->_error(0, "invalid_param [" . $self->res->previous->request->uri . "]" ); } $json = JSON::Syck::Load($self->res->content); # faild json check # for WebService::BuzzurlAPI::Request::Add if(ref($json) eq "HASH" && exists $json->{status} && $json->{status} ne "success"){ return $self->_error(999, $json->{status} . " " . $json->{reason}); } $self->{json} = $json; return 1; }
sub is_success { return shift->res->is_success ? 1 : 0; }
sub _error { my($self, $code, $message) = @_; $self->res->code($code); $self->res->message($message); $self->errstr($message); return 0; } 1; __END__