]> xenbits.xensource.com Git - people/aperard/emesinae.git/commitdiff
Push handling of non-present messages to callers.
authorIan Campbell <ian.campbell@citrix.com>
Tue, 2 Jul 2013 13:45:30 +0000 (14:45 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Tue, 2 Jul 2013 15:21:19 +0000 (16:21 +0100)
Allows us to do away with silly eval{} blocks.

CGI/message.pl
Emesinae/Bug.pm
Emesinae/Message.pm
contrib/thread-msgids.pl
contrib/thread-to-mbox.pl
scripts/control.pl

index b9abfa9eb28ad842af93300e0b89ffe9d3203655..e53baf143a65f85d8eba4cda6e8bc563d4a82b30 100755 (executable)
@@ -67,17 +67,14 @@ if ( $mode =~ m,^part/([0-9]+)/?$, ) {
     $partid = $1;
 }
 
-eval {
-    if ( $lookup_key eq "message" )
-    {
-        $msg = Emesinae::Message->lookup_id( $dbh, $lookup_value );
-    }
-    elsif ( $lookup_key eq "mid" ) {
-        $lookup_value = uri_unescape($lookup_value);
-        $msg = Emesinae::Message->lookup_msgid( $dbh, $lookup_value );
-    }
-};
-fourohfour() if $@;
+if ( $lookup_key eq "message" )
+{
+    $msg = Emesinae::Message->lookup_id( $dbh, $lookup_value );
+}
+elsif ( $lookup_key eq "mid" ) {
+    $lookup_value = uri_unescape($lookup_value);
+    $msg = Emesinae::Message->lookup_msgid( $dbh, $lookup_value );
+}
 fourohfour() unless $msg;
 
 if ( $mode eq "raw" ) {
index 4cf10cf2d579755b3194bcf565cf3442fce8216b..af618138b88bc1473d6d875183e5df10475e08de 100644 (file)
@@ -78,6 +78,8 @@ sub create {
     my $self = $class->new( $dbh, ID => $bugid );
 
     my $msg = Emesinae::Message->lookup_msgid( $dbh, $msgid, Insert => 1 );
+    die "lookup_msgid or insert failed" unless $msg;
+
     $self->add_subthread($msg);
 
     return $self;
@@ -267,6 +269,7 @@ sub messages {
     while ( defined( my $row = $sth->fetch ) ) {
         my ( $inc, $msgid ) = @$row;
         my $m = Emesinae::Message->lookup_id( $self->{dbh}, $msgid );
+        die "lookup_id failed" unless $m;
 
         #print "Subthread ".$m->{msgid}."\n";
         $m->subthread( $inc, \%refs );
index 5103d065245ab157fb862127ddf9e4908ea47188..bca4c6f649b036e8782262d2b3e6979dcf3fb157 100644 (file)
@@ -26,7 +26,7 @@ sub lookup_id {
 
     my $row = $sth->fetch;
 
-    die "lookup_id $id" unless defined $row;
+    return undef unless defined $row;
 
     my ( $msgid, $present, $inserted, $msgtype, $date, $from, $to, $cc, $subj )
       = @{$row};
@@ -92,7 +92,7 @@ sub lookup_msgid {
         $present = 0;
     }
     else {
-        die "lookup_msgid $msgid";
+        return undef;
     }
 
     my $self = {
@@ -172,6 +172,7 @@ sub update {
         $irt =~ s/ (.*)$//;
         my $refto =
           Emesinae::Message->lookup_msgid( $self->{dbh}, $irt, Insert => 1 );
+        die "lookup_msgid or insert failed" unless $refto;
         $sth =
           $self->{dbh}->prepare(
             q{INSERT OR IGNORE INTO refs (parent_id,child_id) VALUES (?1,?2)});
@@ -182,6 +183,7 @@ sub update {
         foreach our $r ( split(/\s/) ) {
             my $refto =
               Emesinae::Message->lookup_msgid( $self->{dbh}, $r, Insert => 1 );
+            die "lookup_msgid or insert failed" unless $refto;
             $sth =
               $self->{dbh}->prepare(
 q{INSERT OR IGNORE INTO refs (parent_id,child_id) VALUES (?1,?2)}
@@ -213,6 +215,7 @@ sub insert {
     chomp($msgid);
 
     my $self = lookup_msgid( $class, $dbh, $msgid, Insert => 1 );
+    die "lookup_msgid or insert failed" unless $self;
     $self->update($header);
     return $self;
 }
@@ -282,6 +285,7 @@ sub _subthread {
         my $id = $r->[0];
         next if exists $refs->{$id} and $refs->{$id}->{Include} eq $inc;
         my $m = Emesinae::Message->lookup_id( $self->{dbh}, $id );
+        die "lookup_id failed" unless $m;
         $refs->{$id} = {
             Message => $m,
             Include => $inc,
index b9896c47ef6e7f9582bb6ea99260d6ba7a55b3ae..1e55517b04d59d2967777c94c730f1f7369e1422 100755 (executable)
@@ -24,6 +24,7 @@ while (1) {
        $more = 1;
 
        my $m = Emesinae::Message->lookup_msgid( $dbh, $msgid );
+        die "lookup_msgid" unless $m;
        my $sth =
            $dbh->prepare(q{SELECT childid FROM refs WHERE parentid = ?});
 
@@ -31,6 +32,7 @@ while (1) {
        while ( defined( my $r = $sth->fetch ) ) {
            my $id = $r->[0];
            my $m = Emesinae::Message->lookup_id( $dbh, $id );
+           die "lookup_id failed" unless $m;
            
            next if $msgs{ $m->{msgid} };
            $msgs{ $m->{msgid} } = 0;# unless $msgs{ $m->{msgid} };
@@ -43,6 +45,7 @@ while (1) {
        while ( defined( my $r = $sth->fetch ) ) {
            my $id = $r->[0];
            my $m = Emesinae::Message->lookup_id( $dbh, $id );
+           die "lookup_id failed" unless $m;
        
            next if $msgs{ $m->{msgid} };
            $msgs{ $m->{msgid} } = 0;# unless $msgs{ $m->{msgid} };
index 986c4778fbe0a09a150def44138ed5f351f38bbf..fa133deb0243a0aa1d096e0d107ab57abaa947a3 100755 (executable)
@@ -12,6 +12,7 @@ our $dbh = opendb();
 our $msgid = $ARGV[0];
 
 our $msg = Emesinae::Message->lookup_msgid( $dbh, $msgid );
+die "lookup_msgid" unless $msg;
 our $id = $msg->id;
 
 print STDERR "Message is $id\n";
index ca8cd41218d348118e42b0256cf8f3bf43d95c4d..da0b33a742f7cfd2240d2f28eb7b02fefb636581 100755 (executable)
@@ -110,8 +110,10 @@ sub genreply ($$@) {
         # Insert both control and reply messages into DB with the correct type.
         my $mcontrol =
           Emesinae::Message->lookup_msgid( $dbh, $message_id, Insert => 1 );
+        die "lookup_msgid or insert control failed" unless $mcontrol;
         my $mreply =
           Emesinae::Message->lookup_msgid( $dbh, $this_id, Insert => 1 );
+        die "lookup_msgid or insert reply failed" unless $mreply;
 
         $mcontrol->set_type("control");
         $mreply->set_type("control-reply");
@@ -222,8 +224,9 @@ sub parse_msgid ($) {
 
 sub lookup_msgid ($) {
     my $msgid = parse_msgid(shift);
-
-    return Emesinae::Message->lookup_msgid( $dbh, $msgid, Insert => 1 );
+    my $msg = Emesinae::Message->lookup_msgid( $dbh, $msgid, Insert => 1 );
+    die "lookup_msgid or insert failed" unless $msg;
+    return $msg
 }
 
 sub lookup_bugid ($) {