package LIMS::Model::Roles::HistoryAction;
# provides 'action' for Role::ReportUpdate & Role::RequestUpdate
# allows both Roles to be used together by any parent class
use Moose::Role;
use Data::Dumper;
has actions => (
is => 'ro',
isa => 'ArrayRef[Str]',
default => sub { [] },
lazy => 1,
traits => ['Array'],
handles => {
add_to_actions => 'push',
reset_actions => 'clear',
all_actions => 'elements',
},
# trigger => sub { warn 'actions' },
);
sub do_request_history {
my $self = shift; # warn Dumper $self->all_actions;
my $request_id = $self->form_data->{_request_id};
my $user_id = $self->user_profile->{id};
my %data = (
request_id => $request_id,
user_id => $user_id,
);
for my $action ($self->all_actions) { # warn $action;
$action = substr($action, 0, 255) if length $action > 255;
$data{action} = $action; # warn Dumper \%data;
LIMS::DB::RequestHistory->new(%data)->save;
}
}
1;