Lieferschein TypeData: croak wenn typ nicht existiert
authorSven Schöling <s.schoeling@googlemail.com>
Sun, 5 Dec 2021 19:45:20 +0000 (20:45 +0100)
committerJan Büren <jan@kivitendo.de>
Mon, 14 Feb 2022 14:02:19 +0000 (15:02 +0100)
SL/DB/DeliveryOrder/TypeData.pm

index 7cde08e..c65e7ff 100644 (file)
@@ -154,12 +154,14 @@ sub is_valid_type {
 sub validate_type {
   my ($type) = @_;
 
-  return $valid_types{$type} // confess "invalid type '$type'";
+  return $valid_types{$type} // croak "invalid type '$type'";
 }
 
 sub get {
   my ($type, $key) = @_;
 
+  croak "invalid type '$type'" unless exists $type_data{$type};
+
   my $ret = $type_data{$type}->{$key} // die "unknown property '$key'";
 
   ref $ret eq 'CODE'
@@ -170,7 +172,9 @@ sub get {
 sub get3 {
   my ($type, $topic, $key) = @_;
 
-  my $ret = $type_data{$type}{$topic}{$key} // die "unknown property '$key' in topic '$topic' for type '$type'";
+  croak "invalid type '$type'" unless exists $type_data{$type};
+
+  my $ret = $type_data{$type}{$topic}{$key} // croak "unknown property '$key' in topic '$topic' for type '$type'";
 
   ref $ret eq 'CODE'
     ? $ret->()