Dancer::Plugin::DataTransposeValidator - Data::Transpose::Validator plugin for Dancer
Version 0.010
use Dancer::Plugin::DataTransposeValidator; post '/' => sub { my $params = params; my $data = validator($params, 'rules-file'); if ( $data->{valid} ) { ... } }
Dancer plugin for for Data::Transpose::Validator
This module exports the single function validator.
validator
Arguments should be a hash reference of parameters to be validated and the name of the rules file to use. Any @additional_args are passed as arguments to the rules file only if it is a code reference. See "RULES FILE".
@additional_args
A hash reference with the following keys is returned:
valid
A boolean 1/0 showing whether the parameters validated correctly or not.
values
The transposed values as a hash reference.
errors
A hash reference containing one key for each parameter which failed validation. See "errors_hash" in "CONFIGURATION" for an explanation of what the value of each parameter key will be.
css
A hash reference containing one key for each parameter which failed validation. The value for each parameter is a css class. See "css_error_class" in "CONFIGURATION".
The rules file format allows the "validator" to be configured using all options available in Data::Transpose::Validator. The rules file must contain a valid hash reference, e.g.:
{ options => { stripwhite => 1, collapse_whitespace => 1, requireall => 0, unknown => "fail", missing => "undefine", }, prepare => { email => { validator => "EmailValid", required => 1, }, email2 => { validator => { class => "MyValidator::EmailValid", absolute => 1, } }, field4 => { validator => { sub { my $field = shift; if ( $field =~ /^\d+/ && $field > 0 ) { return 1; } else { return ( undef, "Not a positive integer" ); } } } } } }
Note that the value of the prepare key must be a hash reference since the array reference form of "prepare" in Data::Transpose::Validator is not supported.
prepare
As an alternative the rules file can contain a code reference, e.g.:
sub { my $username = shift; return { options => { stripwhite => 1, }, prepare => { password => { validator => { class => 'PasswordPolicy', options => { username => $username, minlength => 8, } } } } }; }
The code reference receives the @additional_args passed to "validator". The code reference must return a valid hash reference.
The following configuration settings are available (defaults are shown here):
plugins: DataTransposeValidator: css_error_class: has-error errors_hash: 0 rules_dir: validation
The class returned as a value for parameters in the css key of the hash reference returned by "validator".
This can has a number of different values:
A false value (the default) means that only a single scalar error string will be returned for each parameter error. This will be the first error returned for the parameter by "errors_hash" in Data::Transpose::Validator.
joined
All errors for a parameter will be returned joined by a full stop and a space.
arrayref
All errors for a parameter will be returned as an array reference.
Subdirectory of "appdir" in Dancer::Config in which rules files are stored.
Alexey Kolganov for Dancer::Plugin::ValidateTiny which inspired a number of aspects of this plugin.
Dancer::Plugin::ValidateTiny Dancer::Plugin::FormValidator Dancer::Plugin::DataFu
Peter Mottram (SysPete), <peter@sysnix.com>
<peter@sysnix.com>
Slaven Rezić (SREZIC), <slaven@rezic.de>
<slaven@rezic.de>
Copyright 2015-2016 Peter Mottram (SysPete).
This program is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.
To install Dancer::Plugin::DataTransposeValidator, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Dancer::Plugin::DataTransposeValidator
CPAN shell
perl -MCPAN -e shell install Dancer::Plugin::DataTransposeValidator
For more information on module installation, please visit the detailed CPAN module installation guide.