Fully added Transaction importing

This commit is contained in:
Finn 2019-07-05 17:56:21 +01:00
parent 28c9ee8f65
commit 795543391a
4 changed files with 41 additions and 9 deletions

View file

@ -3,6 +3,8 @@ use strict;
use warnings;
use Moo::Role;
use Text::CSV;
use Try::Tiny;
use Pear::LocalLoop::Error;
requires 'csv_required_columns';
@ -16,6 +18,11 @@ has csv_string => (
predicate => 1,
);
has csv_error => (
is => 'ro',
predicate => 1,
);
has _csv_filehandle => (
is => 'lazy',
builder => sub {
@ -54,7 +61,8 @@ has csv_data => (
is => 'lazy',
builder => sub {
my $self = shift;
$self->check_headers;
my $header_check = $self->check_headers;
return 0 unless $header_check;
return $self->_text_csv->getline_hr_all( $self->_csv_filehandle );
}
);
@ -65,7 +73,13 @@ sub check_headers {
use Devel::Dwarn;
Dwarn $req_headers;
# TODO catch the boom
my @headers = $self->_text_csv->header( $self->_csv_filehandle );
my @headers;
try {
@headers = $self->_text_csv->header( $self->_csv_filehandle );
} catch {
$self->csv_error = $_->[1];
};
return 0 unless @headers;
Dwarn \@headers;
my %header_map = ( map { $_ => 1 } @headers );
for my $req_header ( @$req_headers ) {