WebService::BuzzurlAPI::Request - Buzzurl WebService API request package


WebService-BuzzurlAPI documentation Contained in the WebService-BuzzurlAPI distribution.

Index


Code Index:

NAME

Top

WebService::BuzzurlAPI::Request - Buzzurl WebService API request package

VERSION

Top

0.02

DESCRIPTION

Top

Buzzurl WebService API request package

METHOD

Top

new

Create instance

request

Access API. return HTTP::Response instance

ABSTRACT METHOD

Top

filter_param

make_request_url

make_request_content

is_post_request

ACCESSOR METHOD

Top

buzz

Get WebService::BuzzurlAPI instance(Readonly)

SEE ALSO

Top

Class::Accessor HTTP::Request Readonly

AUTHOR

Top

Akira Horimoto

COPYRIGHT

Top


WebService-BuzzurlAPI documentation Contained in the WebService-BuzzurlAPI distribution.
package WebService::BuzzurlAPI::Request;

use strict;
use base qw(Class::Accessor);
use Carp;
use HTTP::Request;
use Readonly;
use WebService::BuzzurlAPI::Util qw(drop_utf8flag urlencode);

__PACKAGE__->mk_ro_accessors(qw(buzz uri));

our $VERSION = 0.02;

Readonly my @OVERRIDE_METHOD => qw(
                                   filter_param
                                   make_request_url
                                   make_request_content
                                   is_post_request
                                  );

sub import {

    my $class = shift;
    {
        no strict "refs";
        map { *{$_} = sub { croak("\"$_\" abstract method!") } } @OVERRIDE_METHOD;
    }
}

sub new {

    my($class, %args) = @_;

    if(ref($args{buzz}) ne "WebService::BuzzurlAPI"){
        croak("buzz is not \"WebService::BuzzurlAPI\" object");
    }

    return bless \%args, $class || ref $class;
}

sub request {

    my($self, %param) = @_;
    
    $self->filter_param(\%param);
    $self->make_request_url(\%param);

    my @option = ($self->is_post_request) ?
                 ( "POST", $self->uri->as_string, [ "Content-Type", "application/x-www-form-urlencoded" ], $self->make_request_content(\%param) ) :
                 ( "GET", $self->uri->as_string );
    return $self->buzz->ua->request(HTTP::Request->new(@option));
}

1;

__END__