diff options
Diffstat (limited to 'lib/Net/HTTP/Spore/Request.pm')
| -rw-r--r-- | lib/Net/HTTP/Spore/Request.pm | 119 |
1 files changed, 114 insertions, 5 deletions
diff --git a/lib/Net/HTTP/Spore/Request.pm b/lib/Net/HTTP/Spore/Request.pm index 908cce7..267ec0b 100644 --- a/lib/Net/HTTP/Spore/Request.pm +++ b/lib/Net/HTTP/Spore/Request.pm @@ -1,8 +1,11 @@ package Net::HTTP::Spore::Request; +# ABSTRACT: Net::HTTP::Spore::Request - Portable HTTP request object from SPORE env hash + use strict; use warnings; +use Carp (); use URI; use HTTP::Headers; use HTTP::Request; @@ -13,18 +16,23 @@ use Net::HTTP::Spore::Response; sub new { my ( $class, $env ) = @_; + + Carp::croak('$env is required') unless defined $env && ref($env) eq 'HASH'; bless { env => $env }, $class; } -sub env { $_[0]->{env}; } +sub env { $_[0]->{env} } sub method { $_[0]->{env}->{REQUEST_METHOD} } sub port { $_[0]->{env}->{SERVER_PORT} } sub script_name { $_[0]->{env}->{SCRIPT_NAME} } -sub path { $_[0]->{env}->{PATH_INFO} || '/' } +sub path { $_[0]->path_info } sub request_uri { $_[0]->{env}->{REQUEST_URI} } -sub protocol { $_[0]->{env}->{SERVER_PROTOCOL} } -sub content { $_[0]->{env}->{'spore.payload'} } sub scheme { $_[0]->{env}->{'spore.scheme'} } +sub logger { $_[0]->{env}->{'sporex.logger'} } +sub secure { $_[0]->scheme eq 'https' } +sub content { $_[0]->{env}->{'spore.payload'} } +sub body { $_[0]->{env}->{'spore.payload'} } +sub input { $_[0]->{env}->{'spore.payload'} } sub path_info { my $self = shift; @@ -97,7 +105,7 @@ sub uri { my $path = URI::Escape::uri_escape($path_info || '', $path_escape_class); - if ($query_string) { + if (defined $query_string) { $path .= '?' . $query_string; } @@ -105,6 +113,7 @@ sub uri { return URI->new( $base . $path )->canonical; } +# retourner les query parameters ? vu qu'on a pas encore peuple l'url, on gere comment ? sub query_parameters { my $self = shift; } @@ -153,3 +162,103 @@ sub finalize { } 1; + +__END__ + +=head1 SYNOPSIS + + use Net::HTTP::Spore::Request; + + my $request = Net::HTTP::Spore::Request->new($env); + +=head1 DESCRIPTION + +Net::HTTP::Spore::Request create a HTTP request + +=head1 METHODS + +=over 4 + +=item new + + my $req = Net::HTTP::Spore::Request->new(); + +Creates a new Net::HTTP::Spore::Request object. + +=item env + + my $env = $request->env; + +Get the environment for the given request + +=item method + + my $method = $request->method; + +Get the HTTP method for the given request + +=item port + + my $port = $request->port; + +Get the HTTP port from the URL + +=item script_name + + my $script_name = $request->script_name; + +Get the script name part from the URL + +=item path + +=item path_info + + my $path = $request->path_info; + +Get the path info part from the URL + +=item request_uri + + my $request_uri = $request->request_uri; + +Get the request uri from the URL + +=item scheme + + my $scheme = $request->scheme; + +Get the scheme from the URL + +=item secure + + my $secure = $request->secure; + +Return true if the URL is HTTPS + +=item content + +=item body + +=item input + + my $input = $request->input; + +Get the content that will be posted + +=item query_string + +=item headers + +=item header + +=item uri + +=item query_parameters + +=item base + +=item new_response + +=item finalize + +=back |
