Update to 0.62, updated Module::Install
[catagits/Catalyst-Action-REST.git] / lib / Catalyst / Action / Deserialize / JSON.pm
CommitLineData
e601adda 1#
2# Catlyst::Action::Deserialize::JSON.pm
be3c588a 3# Created by: Adam Jacob, Marchex, <adam@hjksolutions.com>
e601adda 4# Created on: 10/12/2006 03:00:32 PM PDT
5#
6# $Id$
7
8package Catalyst::Action::Deserialize::JSON;
9
10use strict;
11use warnings;
12
13use base 'Catalyst::Action';
14use JSON::Syck;
15
16sub execute {
17 my $self = shift;
18 my ( $controller, $c, $test ) = @_;
19
20 my $body = $c->request->body;
faf5c20b 21 my $rbody;
22
e601adda 23 if ($body) {
e601adda 24 while (my $line = <$body>) {
25 $rbody .= $line;
26 }
faf5c20b 27 }
28
29 if ( $rbody ) {
30 my $rdata = eval { JSON::Syck::Load( $rbody ); };
e601adda 31 if ($@) {
32 return $@;
33 }
34 $c->request->data($rdata);
35 } else {
36 $c->log->debug(
faf5c20b 37 'I would have deserialized, but there was nothing in the body!')
38 if $c->debug;
e601adda 39 }
40 return 1;
41}
42
431;