From ec48e1ecc95c17e792b4f576c585275d4e871e4d Mon Sep 17 00:00:00 2001 From: franck cuny Date: Thu, 24 Jun 2010 11:06:31 +0200 Subject: add strict and alter what params_in_url does --- lib/MooseX/Net/API/Role/Request.pm | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'lib/MooseX/Net/API/Role/Request.pm') diff --git a/lib/MooseX/Net/API/Role/Request.pm b/lib/MooseX/Net/API/Role/Request.pm index 5adb43c..13221d3 100644 --- a/lib/MooseX/Net/API/Role/Request.pm +++ b/lib/MooseX/Net/API/Role/Request.pm @@ -28,18 +28,23 @@ sub http_request { my $request; - if ( $method =~ /^(?:GET|DELETE)$/ || $params_in_url ) { + if ($method =~ /^(?:GET|DELETE)$/) { $uri->query_form(%$args); - $request = HTTP::Request->new( $method => $uri ); + $request = HTTP::Request->new($method => $uri); } - elsif ( $method =~ /^(?:POST|PUT)$/ ) { - $request = HTTP::Request->new( $method => $uri ); + elsif ($method =~ /^(?:POST|PUT)$/) { + my $params = {}; + foreach my $key (@$params_in_url) { + $params->{$key} = $args->{$key} if exists $args->{$key}; + } + $uri->query_form(%$params) if $params; + + $request = HTTP::Request->new($method => $uri); my $content = $self->serialize($args); $request->content($content); } else { - die MooseX::Net::API::Error->new( - reason => "$method is not defined" ); + die MooseX::Net::API::Error->new(reason => "$method is not defined"); } $request->header( -- cgit 1.4.1