Bug 550618: Make the XML-RPC WebService return the right date format
r=dkl, a=mkanat git-svn-id: svn://10.0.0.236/branches/BUGZILLA-3_6-BRANCH@259908 18797224-902f-48f8-a5cc-f745e15eee43
This commit is contained in:
parent
aa78fed93a
commit
ecc3b00285
@ -1 +1 @@
|
||||
7023
|
||||
7024
|
||||
@ -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;
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user