RSS Git Download  Clone
Raw Blame History
package Reporter::Validation;
# called as $app->model->validate( <form_name> => $params ); eg search_form => $params

use Moo;
has search_form => (
    is => 'lazy',
    builder => sub { Reporter::Validation::SearchForm->new } );
has report_form => (
    is => 'lazy',
    builder => sub { Reporter::Validation::ReportForm ->new } );
1;

package Reporter::Validation::SearchForm;

use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
use Moose::Util::TypeConstraints;

has_field lab_number => (
    type     => 'Text',
    apply    => [ 'LabNumFormat' ],
);

subtype 'LabNumFormat'
   => as 'Str'
   => where { $_ =~ m!\d+/\d{2}! }
   => message { 'lab number format incorrect: require nnn/yy' };
   
no HTML::FormHandler::Moose;
1;


package Reporter::Validation::ReportForm;

use HTML::FormHandler::Moose;
extends 'HTML::FormHandler';
use Moose::Util::TypeConstraints;

has_field diagnosis_id => (
    type     => 'Integer',
);

no HTML::FormHandler::Moose;
1;