added $c->prepare_input and $c->req->input
Christian Hansen [Sat, 16 Apr 2005 16:07:37 +0000 (16:07 +0000)]
lib/Catalyst/Engine.pm
lib/Catalyst/Engine/Test.pm
lib/Catalyst/Request.pm

index 86eb91b..486bbf7 100644 (file)
@@ -420,6 +420,7 @@ sub prepare {
     $c->prepare_request($r);
     $c->prepare_path;
     $c->prepare_headers;
+    $c->prepare_input;
     $c->prepare_cookies;
     $c->prepare_connection;
 
@@ -535,6 +536,14 @@ Prepare parameters.
 
 =cut
 
+sub prepare_input { }
+
+=item $c->prepare_input
+
+Prepare message body.
+
+=cut
+
 sub prepare_parameters { }
 
 =item $c->prepare_path
index d5fb8a7..c783be1 100644 (file)
@@ -82,6 +82,22 @@ sub prepare_connection {
     $c->req->address( $c->http->address );
 }
 
+=item $c->prepare_input
+
+=cut
+
+sub prepare_input {
+    my $c = shift;
+    return unless 
+            $c->request->content_length
+        and $c->request->content_type
+        and $c->request->content_type ne 'application/x-www-form-urlencoded'
+        and $c->request->content_type ne 'multipart/form-data';
+
+    $c->request->input( $c->http->request->content );
+}
+
 =item $c->prepare_headers
 
 =cut
@@ -130,7 +146,7 @@ sub prepare_parameters {
                     tempname => $fh->filename,
                     type     => $part->content_type
                 );
-                
+
                 $fh->close;
 
                 push( @uploads, $parameters{name}, $upload );
@@ -141,7 +157,7 @@ sub prepare_parameters {
             }
         }
     }
-    
+
     $c->req->_assign_values( $c->req->parameters, \@params );
     $c->req->_assign_values( $c->req->uploads, \@uploads );
 }
index 22516e1..20cbdd5 100644 (file)
@@ -4,8 +4,8 @@ use strict;
 use base 'Class::Accessor::Fast';
 
 __PACKAGE__->mk_accessors(
-    qw/action address arguments base cookies headers hostname match method
-      parameters path snippets uploads/
+    qw/action address arguments base cookies headers input hostname match 
+      method parameters path snippets uploads/
 );
 
 *args   = \&arguments;
@@ -55,6 +55,7 @@ Catalyst::Request - Catalyst Request Class
     $req->header;
     $req->headers;
     $req->hostname;
+    $req->input;
     $req->match;
     $req->method;
     $req->param;
@@ -140,6 +141,13 @@ Contains the hostname of the remote user.
 
     print $c->request->hostname
 
+=item $req->input
+
+Contains the message body of the request unless Content-Type is
+C<application/x-www-form-urlencoded> or C<multipart/form-data>.
+
+    print $c->request->input
+
 =item $req->match
 
 This contains be the matching part of a regexp action. otherwise it