RSS Git Download  Clone
Raw Blame History
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;