Catalyst-Plugin-MessageStack
view release on metacpan or search on metacpan
t/lib/TestApp/Controller/Root.pm view on Meta::CPAN
package TestApp::Controller::Root;
use base 'Catalyst::Controller';
use Data::Dump qw(pp);
__PACKAGE__->config( namespace => '' );
sub index : Path('') {
my ( $self, $c ) = @_;
$c->res->body('No message.');
}
sub create : Local {
my $self = shift;
my $c = shift;
if($c->req->method eq 'POST') {
my $data = $c->req->params;
my $message = $data->{message} || 'A simple default message';
$c->message($message);
if($data->{multiple}) {
$c->res->redirect($c->uri_for('/multiple'));
} else {
$c->res->redirect($c->uri_for('/read'));
}
}
$c->res->body('did not create message');
}
sub multiple : Local {
my $self = shift;
my $c = shift;
my $message = 'An additional message from the multiple method';
$c->message($message);
$c->res->redirect($c->uri_for('/read'));
}
sub read : Local {
my $self = shift;
my $c = shift;
my $body;
if($c->has_messages) {
my $stack = $c->message;
my $msgs = $stack->messages;
foreach my $msg (@{$msgs}) {
$body .= $msg->msgid;
}
} else {
$body = 'no messages';
}
$c->res->body($body);
}
sub tweak_config : Local {
my $self = shift;
my $c = shift;
if($c->req->method eq 'POST') {
my $params = $c->req->params;
my $key = $params->{key};
my $value = $params->{value};
$c->config->{'Plugin::MessageStack'}->{$key} = $value;
$c->res->body(pp($c->config->{'Plugin::MessageStack'}));
} else {
$c->res->body('did not tweak anything');
}
}
sub redirect_source : Local {
my $self = shift;
my $c = shift;
$c->message('multiple redirects preserve messages');
$c->res->redirect($c->uri_for('/redirect_intermediate'));
}
sub redirect_intermediate : Local {
my $self = shift;
my $c = shift;
$c->res->redirect($c->uri_for('/read'));
}
1;
( run in 0.471 second using v1.01-cache-2.11-cpan-5735350b133 )