package Labels;
use Dancer2;
use Labels::Model;
use Data::Dumper;
use Data::Printer;
our $VERSION = '0.1';
set auto_page => 1; # don't need routes for static tt returns (labels)
hook before => sub {
my $vars = params; # p settings('environment');
p $vars if setting('environment') eq 'development';
};
get '/' => sub { template 'index', {}, { layout => 'default' } };
post '/labels' => sub {
my $src_file = upload('src_file'); # p $src_file;
my $valid = _validate_user_input($src_file);
unless ( $valid ) {
debug 'have upload error';
return template VEP_INPUT_TT, {
title => 'Upload Data Error',
warning_message => 'You must upload the file again!',
%$input,
};
}
my @args = ( content => $src_file->content, config => config() ); # p @args;
my $o = Labels::Model->new(@args);
$o->parse_xls();
$o->print_labels();
};
#-------------------------------------------------------------------------------
sub _validate_user_input {
my $src_file = shift || return 'No data file uploaded!';
# check that the file is a valid data file:
return 'Not a valid data file!'
unless lc $src_file->filename =~ /\.xls\Z/;
}
true;