diff options
Diffstat (limited to 'lib/MooseX/Net/API/Role')
-rw-r--r-- | lib/MooseX/Net/API/Role/Request.pm | 17 |
1 files changed, 11 insertions, 6 deletions
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( |