Commit 5d0e6171 authored by Dave Lawrence's avatar Dave Lawrence

Bug 917483 - Bug.update_attachment causes error when updating filename using key 'file_name'

parent 0bb48df6
...@@ -17,7 +17,7 @@ use Bugzilla::Constants; ...@@ -17,7 +17,7 @@ use Bugzilla::Constants;
use Bugzilla::Error; use Bugzilla::Error;
use Bugzilla::Field; use Bugzilla::Field;
use Bugzilla::WebService::Constants; 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::Bug;
use Bugzilla::BugMail; use Bugzilla::BugMail;
use Bugzilla::Util qw(trick_taint trim diff_arrays); use Bugzilla::Util qw(trick_taint trim diff_arrays);
...@@ -55,6 +55,20 @@ use constant READ_ONLY => qw( ...@@ -55,6 +55,20 @@ use constant READ_ONLY => qw(
search 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 # # Add aliases here for old method name compatibility #
###################################################### ######################################################
...@@ -751,9 +765,8 @@ sub update_attachment { ...@@ -751,9 +765,8 @@ sub update_attachment {
# We can't update flags, and summary is really description # We can't update flags, and summary is really description
delete $params->{flags}; 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 # Get all the attachments, after verifying that they exist and are editable
my @attachments = (); my @attachments = ();
...@@ -782,6 +795,8 @@ sub update_attachment { ...@@ -782,6 +795,8 @@ sub update_attachment {
foreach my $attachment (@attachments) { foreach my $attachment (@attachments) {
my $changes = $attachment->update(); my $changes = $attachment->update();
$changes = translate($changes, ATTACHMENT_MAPPED_RETURNS);
my %hash = ( my %hash = (
id => $self->type('int', $attachment->id), id => $self->type('int', $attachment->id),
last_change_time => $self->type('dateTime', $attachment->modification_time), last_change_time => $self->type('dateTime', $attachment->modification_time),
...@@ -790,8 +805,6 @@ sub update_attachment { ...@@ -790,8 +805,6 @@ sub update_attachment {
foreach my $field (keys %$changes) { foreach my $field (keys %$changes) {
my $change = $changes->{$field}; 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 # We normalize undef to an empty string, so that the API
# stays consistent for things like Deadline that can become # stays consistent for things like Deadline that can become
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment