From 0380ac9f195fc14d0e36e706a2f87ee30830ad1e Mon Sep 17 00:00:00 2001 From: "bzrmirror%bugzilla.org" Date: Thu, 26 Sep 2013 21:33:38 +0000 Subject: [PATCH] Bug 917483 - Bug.update_attachment causes error when updating filename using key 'file_name' git-svn-id: svn://10.0.0.236/trunk@265040 18797224-902f-48f8-a5cc-f745e15eee43 --- mozilla/webtools/bugzilla/.bzrrev | 2 +- .../bugzilla/Bugzilla/WebService/Bug.pm | 25 ++++++++++++++----- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/mozilla/webtools/bugzilla/.bzrrev b/mozilla/webtools/bugzilla/.bzrrev index 64525705281..26824aeda75 100644 --- a/mozilla/webtools/bugzilla/.bzrrev +++ b/mozilla/webtools/bugzilla/.bzrrev @@ -1 +1 @@ -8761 \ No newline at end of file +8762 \ No newline at end of file diff --git a/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm b/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm index eaca97f9117..250284d6175 100644 --- a/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm +++ b/mozilla/webtools/bugzilla/Bugzilla/WebService/Bug.pm @@ -17,7 +17,7 @@ use Bugzilla::Constants; use Bugzilla::Error; use Bugzilla::Field; use Bugzilla::WebService::Constants; -use Bugzilla::WebService::Util qw(filter filter_wants validate); +use Bugzilla::WebService::Util qw(filter filter_wants validate translate); use Bugzilla::Bug; use Bugzilla::BugMail; use Bugzilla::Util qw(trick_taint trim diff_arrays); @@ -55,6 +55,20 @@ use constant READ_ONLY => qw( search ); +use constant ATTACHMENT_MAPPED_SETTERS => { + file_name => 'filename', + summary => 'description', +}; + +use constant ATTACHMENT_MAPPED_RETURNS => { + description => 'summary', + ispatch => 'is_patch', + isprivate => 'is_private', + isobsolete => 'is_obsolete', + filename => 'file_name', + mimetype => 'content_type', +}; + ###################################################### # Add aliases here for old method name compatibility # ###################################################### @@ -751,9 +765,8 @@ sub update_attachment { # We can't update flags, and summary is really description delete $params->{flags}; - if (exists $params->{summary}) { - $params->{description} = delete $params->{summary}; - } + + $params = translate($params, ATTACHMENT_MAPPED_SETTERS); # Get all the attachments, after verifying that they exist and are editable my @attachments = (); @@ -782,6 +795,8 @@ sub update_attachment { foreach my $attachment (@attachments) { my $changes = $attachment->update(); + $changes = translate($changes, ATTACHMENT_MAPPED_RETURNS); + my %hash = ( id => $self->type('int', $attachment->id), last_change_time => $self->type('dateTime', $attachment->modification_time), @@ -790,8 +805,6 @@ sub update_attachment { foreach my $field (keys %$changes) { my $change = $changes->{$field}; - # Description is shown as summary to the user - $field = 'summary' if $field eq 'description'; # We normalize undef to an empty string, so that the API # stays consistent for things like Deadline that can become