From e3acd9ec21179efc8d3d592248ea3af274fce5cb Mon Sep 17 00:00:00 2001 From: "mkanat%bugzilla.org" Date: Tue, 20 Jan 2009 20:26:16 +0000 Subject: [PATCH] Bug 473052: Modify WebService::Bug.add_comment to return the new comment ID Patch By Kip Hampton r=mkanat, a=mkanat git-svn-id: svn://10.0.0.236/trunk@255868 18797224-902f-48f8-a5cc-f745e15eee43 --- .../bugzilla/Bugzilla/WebService/Bug.pm | 20 ++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm b/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm index 5626d1a8499..715ebe833d3 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm +++ b/mozilla/webtools/bugzilla/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