]> git.mjollnir.org Git - tks.git/commitdiff
fixing error reporting in TKS Zebra perl module
authorPenny Leach <penny@mjollnir.org>
Sat, 30 May 2009 12:04:47 +0000 (14:04 +0200)
committerPenny Leach <penny@mjollnir.org>
Sat, 30 May 2009 12:04:47 +0000 (14:04 +0200)
lib/Zebra.pm

index 1e6c5dff163545648b8dd312bd103e78d9cd46a0..31b4a1d22dcb1c4f3f03990c41113a4d397a70c6 100644 (file)
@@ -116,14 +116,27 @@ sub add_time {
 
     if ($res->is_error) {
         $self->{_error} = qq(Failed to post timesheet data!');
-        return $self->{_error};
+        warn $self->{_error};
+        return 0;
     }
 
     my $zresponse = from_json($res->content)->{command}{response};
 
     if ($zresponse && $zresponse->{success} && $zresponse->{success} eq 'false') {
-        $self->{_error} = qq(Failed to post timesheet data!');
-        return $self->{_error};
+        my @error = @{ from_json($res->content)->{command}{error} };
+        my $errorstr = '';
+        foreach my $e (@error) {
+            if (ref($e) eq 'HASH') {
+                foreach my $key (keys %$e) {
+                    if ($key ne '@attributes') {
+                        $errorstr .= $e->{$key};
+                    }
+                }
+            }
+        }
+        $self->{_error} = qq(Failed to post timesheet data!, error if any was: $errorstr');
+        warn $self->{_error};
+        return 0;
     }
     return 1;
 }