diff options
author | mkanat%bugzilla.org <> | 2009-01-20 21:26:16 +0100 |
---|---|---|
committer | mkanat%bugzilla.org <> | 2009-01-20 21:26:16 +0100 |
commit | 4a2ceff53d05ed1a9440609c21e78364e8e8b020 (patch) | |
tree | b2ad1f6178335f9cbb7ee454a0551bd2c8af49d0 | |
parent | 2e920979ebe3ecead46c4b2982041fd86155a4dd (diff) | |
download | bugzilla-4a2ceff53d05ed1a9440609c21e78364e8e8b020.tar.gz bugzilla-4a2ceff53d05ed1a9440609c21e78364e8e8b020.tar.xz |
Bug 473052: Modify WebService::Bug.add_comment to return the new comment ID
Patch By Kip Hampton <khampton@totalcinema.com> r=mkanat, a=mkanat
-rwxr-xr-x | Bugzilla/WebService/Bug.pm | 20 |
1 files changed, 19 insertions, 1 deletions
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<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 |