From 4a2ceff53d05ed1a9440609c21e78364e8e8b020 Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" <> Date: Tue, 20 Jan 2009 20:26:16 +0000 Subject: Bug 473052: Modify WebService::Bug.add_comment to return the new comment ID Patch By Kip Hampton r=mkanat, a=mkanat --- Bugzilla/WebService/Bug.pm | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'Bugzilla') diff --git a/Bugzilla/WebService/Bug.pm b/Bugzilla/WebService/Bug.pm index 5626d1a84..715ebe833 100755 --- a/Bugzilla/WebService/Bug.pm +++ b/Bugzilla/WebService/Bug.pm @@ -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 + +A hash with one element, C whose value is the id of the newly-created comment. + =item B =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 -- cgit v1.2.3-24-g4f1b