summaryrefslogtreecommitdiff
path: root/lib/Net
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Net')
-rw-r--r--lib/Net/HTTP/Spore/Request.pm136
1 files changed, 56 insertions, 80 deletions
diff --git a/lib/Net/HTTP/Spore/Request.pm b/lib/Net/HTTP/Spore/Request.pm
index 8a42e16..5b1caa2 100644
--- a/lib/Net/HTTP/Spore/Request.pm
+++ b/lib/Net/HTTP/Spore/Request.pm
@@ -128,53 +128,40 @@ sub body {
}
}
+sub base {
+ my $self = shift;
+ URI->new( $self->_uri_base )->canonical;
+}
+
sub input { (shift)->body(@_) }
sub content { (shift)->body(@_) }
sub secure { $_[0]->scheme eq 'https' }
-# stolen from HTTP::Request::Common
-sub _boundary {
- my ( $self, $size ) = @_;
+# TODO
+# need to refactor this method, with path_info and query_string construction
+sub uri {
+ my ($self, $path_info, $query_string) = @_;
- return "xYzZy" unless $size;
+ if ( !defined $path_info || !defined $query_string ) {
+ my @path_info = $self->_path;
+ $path_info = $path_info[0] if !$path_info;
+ $query_string = $path_info[1] if !$query_string;
+ }
- my $b =
- MIME::Base64::encode( join( "", map chr( rand(256) ), 1 .. $size * 3 ),
- "" );
- $b =~ s/[\W]/X/g;
- return $b;
-}
+ my $base = $self->_uri_base;
-sub _form_data {
- my ( $self, $data ) = @_;
+ my $path_escape_class = '^A-Za-z0-9\-\._~/';
- my $form_data;
- foreach my $k ( keys %$data ) {
- push @$form_data,
- 'Content-Disposition: form-data; name="'
- . $k
- . '"'."\r\n\r\n"
- . $data->{$k};
- }
+ my $path = URI::Escape::uri_escape($path_info || '', $path_escape_class);
- my $b = $self->_boundary(10);
- my $t = [];
- foreach (@$form_data) {
- push @$t, '--', $b, "\r\n", $_, "\r\n";
+ if (defined $query_string && length($query_string) > 0) {
+ $path .= '?' . $query_string;
}
- push @$t, '--', $b, , '--', "\r\n";
- my $content = join("", @$t);
- return ($content, $b);
-}
-# TODO
-sub path_info {
- my $self = shift;
- my ($path) = $self->_path;
- $path;
+ $base =~ s!/$!! if $path =~ m!^/!;
+ return URI->new( $base . $path )->canonical;
}
-# TODO
sub _path {
my $self = shift;
@@ -200,52 +187,6 @@ sub _path {
return ( $path, $query_string );
}
-# TODO
-sub query_string {
- my $self = shift;
- my ( undef, $query_string ) = $self->_path;
- $query_string;
-}
-
-# TODO
-sub uri {
- my $self = shift;
-
- my $path_info = shift;
- my $query_string = shift;
-
- if ( !defined $path_info || !defined $query_string ) {
- my @path_info = $self->_path;
- $path_info = $path_info[0] if !$path_info;
- $query_string = $path_info[1] if !$query_string;
- }
-
- my $base = $self->_uri_base;
-
- my $path_escape_class = '^A-Za-z0-9\-\._~/';
-
- my $path = URI::Escape::uri_escape($path_info || '', $path_escape_class);
-
- if (defined $query_string && length($query_string) > 0) {
- $path .= '?' . $query_string;
- }
-
- $base =~ s!/$!! if $path =~ m!^/!;
- return URI->new( $base . $path )->canonical;
-}
-
-# TODO retourner les query parameters ? vu qu'on a pas encore peuple l'url, on gere comment ?
-sub query_parameters {
- my $self = shift;
-}
-
-# TODO
-sub base {
- my $self = shift;
- URI->new( $self->_uri_base )->canonical;
-}
-
-# TODO
sub _uri_base {
my $self = shift;
my $env = $self->env;
@@ -260,6 +201,41 @@ sub _uri_base {
return $uri;
}
+# stolen from HTTP::Request::Common
+sub _boundary {
+ my ( $self, $size ) = @_;
+
+ return "xYzZy" unless $size;
+
+ my $b =
+ MIME::Base64::encode( join( "", map chr( rand(256) ), 1 .. $size * 3 ),
+ "" );
+ $b =~ s/[\W]/X/g;
+ return $b;
+}
+
+sub _form_data {
+ my ( $self, $data ) = @_;
+
+ my $form_data;
+ foreach my $k ( keys %$data ) {
+ push @$form_data,
+ 'Content-Disposition: form-data; name="'
+ . $k
+ . '"'."\r\n\r\n"
+ . $data->{$k};
+ }
+
+ my $b = $self->_boundary(10);
+ my $t = [];
+ foreach (@$form_data) {
+ push @$t, '--', $b, "\r\n", $_, "\r\n";
+ }
+ push @$t, '--', $b, , '--', "\r\n";
+ my $content = join("", @$t);
+ return ($content, $b);
+}
+
sub new_response {
my $self = shift;
my $res = Net::HTTP::Spore::Response->new(@_);