Commit 9947ffcb authored by Max Kanat-Alexander's avatar Max Kanat-Alexander

Bug 550618: Make the XML-RPC WebService return the right date format

r=dkl, a=mkanat
parent f2660e7a
......@@ -19,10 +19,9 @@
# actual RPC server, see Bugzilla::WebService::Server and its subclasses.
package Bugzilla::WebService;
use strict;
use Date::Parse;
use Bugzilla::WebService::Server;
use XMLRPC::Lite;
use Bugzilla::Util qw(datetime_from);
use Scalar::Util qw(blessed);
# Used by the JSON-RPC server to convert incoming date fields apprpriately.
use constant DATE_FIELDS => {};
......@@ -43,22 +42,16 @@ sub type {
return XMLRPC::Data->type($type)->value($value);
}
# This is the XML-RPC implementation, see the README in Bugzilla/WebService/.
# Our "base" implementation is in Bugzilla::WebService::Server.
sub datetime_format_outbound {
my ($self, $date) = @_;
my $time = $date;
if (blessed($date)) {
# We expect this to mean we were sent a datetime object
$time->set_time_zone('UTC');
} else {
# We always send our time in UTC, for consistency.
# passed in value is likely a string, create a datetime object
$time = datetime_from($date, 'UTC');
}
return $time->iso8601();
my $self = shift;
my $value = Bugzilla::WebService::Server->datetime_format_outbound(@_);
# XML-RPC uses an ISO-8601 format that doesn't have any hyphens.
$value =~ s/-//g;
return $value;
}
1;
__END__
......
......@@ -21,6 +21,8 @@ use strict;
use Bugzilla::Error;
use Bugzilla::Util qw(datetime_from);
use Scalar::Util qw(blessed);
sub handle_login {
my ($self, $class, $method, $full_method) = @_;
eval "require $class";
......@@ -38,4 +40,19 @@ sub datetime_format_inbound {
return $time
}
sub datetime_format_outbound {
my ($self, $date) = @_;
my $time = $date;
if (blessed($date)) {
# We expect this to mean we were sent a datetime object
$time->set_time_zone('UTC');
} else {
# We always send our time in UTC, for consistency.
# passed in value is likely a string, create a datetime object
$time = datetime_from($date, 'UTC');
}
return $time->iso8601();
}
1;
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