NAME
Catalyst::Plugin::Params::Profile - Parameter checking with Params::Profile
SYNOPSIS package MyAPP; use Catalyst qw/Params::Profile/;
# In a controller
MyAPP->register_profile(
'method' => 'subroto',
'profile' => {
testkey1 => { required => 1 },
testkey2 => {
required => 1,
allow => qr/^\d+$/,
},
testkey3 => {
allow => qr/^\w+$/,
},
},
);
sub subroto : Private {
my (%params) = @_;
return unlesss $c->validate('params' => \%params);
### DO SOME STUFF HERE ...
my $profile = $c->get_profile('method' => 'subroto');
}
### Multiple Profile
MyAPP->register_profile(
'method' => 'subalso',
'profile' => [
'subroto',
{
testkey4 => { required => 1 },
testkey5 => {
required => 1,
allow => qr/^\d+$/,
},
testkey6 => {
allow => qr/^\w+$/,
},
},
],
);
sub subalso : Local {
my (%params) = @_;
### Checks parameters agains profile of subroto and above registered
### profile
return unlesss $c->validate('params' => \%params);
### DO SOME STUFF HERE ...
}
DESCRIPTION
Catalyst::Plugin::Params::Profile provides a mechanism for a centralised Params::Check or a Data::FormValidater profile. You can bind a profile to a class::subroutine, then, when you are in a subroutine you can simply call $c->check($params) of $c->validate($params) to validate against this profile.
For more information read the manual of Params::Profile , the methods below are just an interface on it.
Public Methods
See Params::Profile for more information about the specific methods, the onse listed below are the most important
- $c->register_profile('method' => $METHOD, 'profile' => \%PROFILE);
- $c->get_profile('method' => $METHOD);
- $c->validate('params' => \%PARAMS);
- $c->check('params' => \%PARAMS);
XMLRPC
This module also registers a method name called system.methodHelp into the Server::XMLRPC plugin when it is loaded. This method will try to explain in plaintext the arguments for the subroutine by parsing the given profile.
Example output when system.methodHelp is called with one argument containing the name of the method you'd like to be explained:
Required arguments are:
* customer_id
* username
* product
Optional arguments are:
* roaming
* card_type
NOTE: This currently only works for Data::FormValidator profiles.
AUTHOR
This module by Michiel Ootjers <michiel@cpan.org>.
and
Jos Boumans <kane@cpan.org>.
TODO
BUG REPORTS
Please submit all bugs regarding Catalyst::Plugin::Params::Profile to bug-catalyst-plugin-params-profile@rt.cpan.org
COPYRIGHT
This module is copyright (c) 2002 Michiel Ootjers <michiel@cpan.org>. All rights reserved.
This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.