NAME
Workflow::Validator::HasRequiredField - Validator to ensure certain data are in the context
VERSION
This documentation describes version 2.09 of this package
SYNOPSIS
# Validator is created automatically when you mark a field as
# 'is_required: yes' in the action, such as:
action:
- name: CreateUser
field:
- name: username
is_required: yes
source_class: App::Field::ValidUsers
...
DESCRIPTION
This is a simple validator to ensure that each of the fields you have marked with the 'is_required' property as 'yes' are indeed present before the associated action is executed.
for instance, given the configuration:
action:
- name: CreateUser
field:
- name: username
is_required: yes
- name: email
is_required: yes
- name: office
An action executed with such a context:
my $wf = FACTORY->get_workflow( $id );
$wf->context( username => 'foo' );
$wf->context( office => 'Ottumwa' );
$wf->execute_action( 'CreateUser' );
Would fail with a message:
The following fields require a value: email
You normally do not need to configure this validator yourself. It gets generated automatically when the Action configration is read in based on the 'is_required: yes' attribute. However, if you do need to create it yourself:
action:
- name: Foo
validator:
- name: HasRequiredField
arg:
- fieldOne
- field_two
Note that we do not try to match the value in the context against a set of known values or algorithm, just see if the value is defined -- using the Perl notion for defined rather than true/false, which means '0' and the empty string will both be valid.
METHODS
validate
Validates whether a given set of required fields are defined.
Takes two parameters: a workflow object and an array of names of fields.
The provided fields are matched against the workflow in question and Workflow::Exception's are thrown in case of missing fields.
COPYRIGHT
Copyright (c) 2003-2021 Chris Winters. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself.
Please see the LICENSE
AUTHORS
Please see Workflow