convert Shop::Tax to use exceptions
This commit is contained in:
parent
57cd7b6473
commit
a61ab090ee
2 changed files with 17 additions and 11 deletions
|
|
@ -34,6 +34,11 @@ use Exception::Class (
|
||||||
description => "The object you were try to retrieve does not exist.",
|
description => "The object you were try to retrieve does not exist.",
|
||||||
fields => ["id"],
|
fields => ["id"],
|
||||||
},
|
},
|
||||||
|
'WebGUI::Error::InvalidFile' => {
|
||||||
|
isa => 'WebGUI::Error',
|
||||||
|
description => "The file you have provided has errors.",
|
||||||
|
fields => [qw{ brokenFile brokenLine }],
|
||||||
|
},
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -3,9 +3,9 @@ package WebGUI::Shop::Tax;
|
||||||
use strict;
|
use strict;
|
||||||
|
|
||||||
use Class::InsideOut qw{ :std };
|
use Class::InsideOut qw{ :std };
|
||||||
use Carp qw(croak);
|
|
||||||
use WebGUI::Text;
|
use WebGUI::Text;
|
||||||
use WebGUI::Storage;
|
use WebGUI::Storage;
|
||||||
|
use WebGUI::Exception::Shop;
|
||||||
|
|
||||||
=head1 NAME
|
=head1 NAME
|
||||||
|
|
||||||
|
|
@ -65,10 +65,11 @@ sub add {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $params = shift;
|
my $params = shift;
|
||||||
my $id = $self->session->id->generate();
|
my $id = $self->session->id->generate();
|
||||||
croak "Must pass in a hashref"
|
|
||||||
|
WebGUI::Error::InvalidParam->throw(error => 'Must pass in a hashref of params')
|
||||||
unless ref($params) eq 'HASH';
|
unless ref($params) eq 'HASH';
|
||||||
foreach my $key (qw/field value taxRate/) {
|
foreach my $key (qw/field value taxRate/) {
|
||||||
croak "Hash ref must contain a $key key with a defined value"
|
WebGUI::Error::InvalidParam->throw(error => "Hash ref must contain a $key key with a defined value")
|
||||||
unless exists($params->{$key}) and defined $params->{$key};
|
unless exists($params->{$key}) and defined $params->{$key};
|
||||||
}
|
}
|
||||||
$self->session->db->write('insert into tax (taxId, field, value, taxRate) VALUES (?,?,?,?)', [$id, @{ $params }{qw[ field value taxRate ]}]);
|
$self->session->db->write('insert into tax (taxId, field, value, taxRate) VALUES (?,?,?,?)', [$id, @{ $params }{qw[ field value taxRate ]}]);
|
||||||
|
|
@ -94,9 +95,9 @@ The taxId of the data to delete from the table.
|
||||||
sub delete {
|
sub delete {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $params = shift;
|
my $params = shift;
|
||||||
croak "Must pass in a hashref"
|
WebGUI::Error::InvalidParam->throw(error => 'Must pass in a hashref of params')
|
||||||
unless ref($params) eq 'HASH';
|
unless ref($params) eq 'HASH';
|
||||||
croak "Hash ref must contain a taxId key with a defined value"
|
WebGUI::Error::InvalidParam->throw(error => "Hash ref must contain a taxId key with a defined value")
|
||||||
unless exists($params->{taxId}) and defined $params->{taxId};
|
unless exists($params->{taxId}) and defined $params->{taxId};
|
||||||
$self->session->db->write('delete from tax where taxId=?', [$params->{taxId}]);
|
$self->session->db->write('delete from tax where taxId=?', [$params->{taxId}]);
|
||||||
return;
|
return;
|
||||||
|
|
@ -162,19 +163,19 @@ if old data has been deleted and new has been inserted.
|
||||||
sub importTaxData {
|
sub importTaxData {
|
||||||
my $self = shift;
|
my $self = shift;
|
||||||
my $filePath = shift;
|
my $filePath = shift;
|
||||||
croak q{Must provide the path to a file}
|
WebGUI::Error::InvalidParam->throw(error => q{Must provide the path to a file})
|
||||||
unless $filePath;
|
unless $filePath;
|
||||||
croak qq{$filePath could not be found}
|
WebGUI::Error::InvalidParam->throw(error => qq{$filePath could not be found})
|
||||||
unless -e $filePath;
|
unless -e $filePath;
|
||||||
croak qq{$filePath is not readable}
|
WebGUI::Error::InvalidParam->throw(error => qq{$filePath is not readable})
|
||||||
unless -r $filePath;
|
unless -r $filePath;
|
||||||
open my $table, '<', $filePath or
|
open my $table, '<', $filePath or
|
||||||
croak "Unable to open $filePath for reading: $!\n";
|
WebGUI::Error->throw(error => qq{Unable to open $filePath for reading: $!\n});
|
||||||
my $headers;
|
my $headers;
|
||||||
$headers = <$table>;
|
$headers = <$table>;
|
||||||
chomp $headers;
|
chomp $headers;
|
||||||
my @headers = WebGUI::Text::splitCSV($headers);
|
my @headers = WebGUI::Text::splitCSV($headers);
|
||||||
croak qq{Bad header found in the CSV file}
|
WebGUI::Error::InvalidFile->throw(error => qq{Bad header found in the CSV file}, brokenFile => $filePath)
|
||||||
unless (join(q{-}, sort @headers) eq 'field-taxRate-value')
|
unless (join(q{-}, sort @headers) eq 'field-taxRate-value')
|
||||||
and (scalar @headers == 3);
|
and (scalar @headers == 3);
|
||||||
my @taxData = ();
|
my @taxData = ();
|
||||||
|
|
@ -184,7 +185,7 @@ sub importTaxData {
|
||||||
$taxRow =~ s/\s*#.+$//;
|
$taxRow =~ s/\s*#.+$//;
|
||||||
next unless $taxRow;
|
next unless $taxRow;
|
||||||
my @taxRow = WebGUI::Text::splitCSV($taxRow);
|
my @taxRow = WebGUI::Text::splitCSV($taxRow);
|
||||||
croak qq{Error on line $line in file $filePath}
|
WebGUI::Error::InvalidFile->throw(error => qq{Error found in the CSV file}, brokenFile => $filePath, brokenLine => $line)
|
||||||
unless scalar @taxRow == 3;
|
unless scalar @taxRow == 3;
|
||||||
push @taxData, [ @taxRow ];
|
push @taxData, [ @taxRow ];
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue