NAME
Class::Workflow::Transition::Validate - Provide a hook for validating a transition (conditionals, input validators, etc).
SYNOPSIS
package MyTransition;
use Moose;
with qw/
Class::Workflow::Transition
Class::Workflow::Transition::Validate
/;
sub validate {
my ( $self, $instance, %args ) = @_;
die "only the owner can apply this transition"
unless $args{user} eq $instance->owner;
}
DESCRIPTION
This role will call the validate
method at the appropriate time.
validate
receives the same arguments as apply
, and is expected to die if any of the parameters for the transition are invalid.
Technically, this role doesn't do much more than adding syntactic sugar for before 'apply'
. However, it's value is in the convention that you can call validate
without applying the body. This eases writing side effect free introspection of transitions.