Add a json_options key to the REST controller
[catagits/Catalyst-Action-Serialize-Data-Serializer.git] / t / lib / Test / Serialize / Controller / JSON.pm
diff --git a/t/lib/Test/Serialize/Controller/JSON.pm b/t/lib/Test/Serialize/Controller/JSON.pm
new file mode 100644 (file)
index 0000000..fcc07a3
--- /dev/null
@@ -0,0 +1,29 @@
+package Test::Serialize::Controller::JSON;
+
+use namespace::autoclean;
+use Moose;
+
+BEGIN { extends qw/Catalyst::Controller::REST/ };
+
+__PACKAGE__->config(
+    'stash_key' => 'rest',
+    'json_options' => {
+        relaxed => 1,
+    },
+    'map'       => {
+        'text/x-json'        => 'JSON',
+    },
+);
+
+sub monkey_json_put : Path("/monkey_json_put") : ActionClass('Deserialize') {
+    my ( $self, $c ) = @_;
+    if ( ref($c->req->data) eq "HASH" ) {
+        my $out = ($c->req->data->{'sushi'}||'') . ($c->req->data->{'chicken'}||'');
+        utf8::encode($out);
+        $c->res->output( $out );
+    } else {
+        $c->res->output(1);
+    }
+}
+
+1;