]> git.ipfire.org Git - thirdparty/bugzilla.git/commitdiff
Bug 473052: Modify WebService::Bug.add_comment to return the new comment ID
authormkanat%bugzilla.org <>
Tue, 20 Jan 2009 20:26:16 +0000 (20:26 +0000)
committermkanat%bugzilla.org <>
Tue, 20 Jan 2009 20:26:16 +0000 (20:26 +0000)
Patch By Kip Hampton <khampton@totalcinema.com> r=mkanat, a=mkanat

Bugzilla/WebService/Bug.pm

index 5626d1a849984282f15c156d3efac3db379d0e3b..715ebe833d3cd87323aebe32cd282bd01298edcb 100755 (executable)
@@ -337,11 +337,23 @@ sub add_comment {
     # Append comment
     $bug->add_comment($comment, { isprivate => $params->{private},
                                   work_time => $params->{work_time} });
+    
+    # Capture the call to bug->update (which creates the new comment) in 
+    # a transaction so we're sure to get the correct comment_id.
+    
+    my $dbh = Bugzilla->dbh;
+    $dbh->bz_start_transaction();
+    
     $bug->update();
     
+    my $new_comment_id = $dbh->bz_last_key('longdescs', 'comment_id');
+    
+    $dbh->bz_commit_transaction();
+    
     # Send mail.
     Bugzilla::BugMail::Send($bug->bug_id, { changer => Bugzilla->user->login });
-    return undef;
+    
+    return { id => $self->type('int', $new_comment_id) };
 }
 
 1;
@@ -977,6 +989,10 @@ be ignored.
 
 =back
 
+=item B<Returns>
+
+A hash with one element, C<id> whose value is the id of the newly-created comment.
+
 =item B<Errors>
 
 =over
@@ -1002,6 +1018,8 @@ You did not have the necessary rights to edit the bug.
 
 =item Added in Bugzilla B<3.2>.
 
+=item Modified to return the new comment's id in Bugzilla B<3.4>
+
 =back
 
 =back