NAME
Catalyst::ResponseHelpers - Concise response constructors for Catalyst
controllers
SYNOPSIS
use Catalyst::ResponseHelpers qw< :helpers :status >;
sub show_user : Chained('/') PathPart('user') Args(1) {
my ($c, $id) = @_;
my $user = load_user($id)
or return NotFound($c, "The user id <$id> couldn't be found.");
...
}
DESCRIPTION
Various helper functions for setting up the current Catalyst::Response
object. All response helpers call Catalyst/detach to stop request
processing. For clarity in your controller actions, it is nevertheless
recommended that you call these helpers as values to return().
EXPORTS
By default, only the helper methods documented below are exported. You
may explicitly request them using the :helpers tag.
You may also request :status, which re-exports the :constants from
HTTP::Status into your package. This is useful for custom status codes.
FUNCTIONS
ReturnWithMsg($c, $mid)
Redirects to the request’s return parameter, or / if no such parameter
exists or if the given URI appears to be external to the app. The given
$mid is set as a query parameter, and should be the result of a
$c->set_status_msg or $c->set_error_msg call. These context methods are
normally provided by Catalyst::Plugin::StatusMessage.
Redirect($c, $action_or_action_path, @args?)
Passes arguments to "uri_for_action" in Catalyst and redirects to the
returned URL.
RedirectToUrl($c, $url, $status?)
Redirects to the given URL, with an optional custom status. Status
defaults to 302 (HTTP_FOUND).
Ok($c, $status?, $msg?)
Sets a body-less 200 OK response by default, with an optional body via
"TextPlain" iff a message is provided. Both the status and message may
be omitted or provided. If the message is omitted, a body-less response
is set.
Forbidden($c, $msg?)
Sets a plain text 403 Forbidden response, with an optional custom
message.
NotFound($c, $msg?)
Sets a plain text 404 Not Found response, with an optional custom
message.
ClientError($c, $status?, $msg?)
Sets a plain text 400 Bad Request response by default, with an optional
custom message. Both the status and message may be omitted or provided.
ServerError($c, $status?, $msg?)
Sets a plain text 500 Internal Server Error response by default, with
an optional custom message. Both the status and message may be omitted
or provided. The error is logged via "log" in Catalyst.
TextPlain($c, $status?, $msg?)
Sets a plain text 200 OK response by default, with an optional custom
message. Both the status and message may be omitted or provided.
AsJSON($c, $status?, $data)
Sets a JSON 200 OK response by default, with an optional custom status.
Data should be serializable by a view named JSON provided by your
application (e.g. via Catalyst::View::JSON).
FromFile($c, $filename, $mime_type, $headers?)
Sets a response from the contents of the filename using the specified
MIME type. Content-Length and Last-Modified are set from the file.
The Content-Disposition is set to attachment by default, usually
forcing a download.
An optional arrayref of additional headers may also be provided, which
is passed through to "FromHandle".
FromCharString($c, $string, $mime_type, $headers?)
Sets a response from the contents of a character string using the
specified MIME type. The character string will be encoded as UTF-8
bytes.
The Content-Disposition is set to attachment by default, usually
forcing a download.
An optional arrayref of additional headers may also be provided, which
is passed through to "FromHandle".
FromHandle($c, $handle, $mime_type, $headers?)
Sets a response from the contents of the filehandle using the specified
MIME type. An optional arrayref of additional headers may also be
provided, which is passed to the response’s HTTP::Headers object.
The Content-Disposition is set to attachment by default, usually
forcing a download.
AUTHOR
Thomas Sibley <
[email protected]>
THANKS
Inspired in part by seeing John Napiorkowski’s (jnap) experimental
response helpers in CatalystX::Example::Todo
<
https://github.com/jjn1056/CatalystX-Example-Todo/blob/master/lib/Catalyst/ResponseHelpers.pm>.
COPYRIGHT
Copyright 2015- by the University of Washington
LICENSE
This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.