Commit c69c8a92 authored by Dave Lawrence's avatar Dave Lawrence

Bug 724464 - JSON-RPC support shouldn't require SOAP::Lite

r/a=LpSolit
parent b9382a08
......@@ -11,8 +11,6 @@ package Bugzilla::WebService;
use strict;
use Bugzilla::WebService::Server;
use XMLRPC::Lite;
# Used by the JSON-RPC server to convert incoming date fields apprpriately.
use constant DATE_FIELDS => {};
# Used by the JSON-RPC server to convert incoming base64 fields appropriately.
......@@ -30,24 +28,6 @@ sub login_exempt {
return $class->LOGIN_EXEMPT->{$method};
}
sub type {
my ($self, $type, $value) = @_;
if ($type eq 'dateTime') {
$value = $self->datetime_format_outbound($value);
}
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 = 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__
......
......@@ -18,6 +18,20 @@ if ($ENV{MOD_PERL}) {
use Bugzilla::WebService::Constants;
# Allow WebService methods to call XMLRPC::Lite's type method directly
BEGIN {
*Bugzilla::WebService::type = sub {
my ($self, $type, $value) = @_;
if ($type eq 'dateTime') {
# This is the XML-RPC implementation, see the README in Bugzilla/WebService/.
# Our "base" implementation is in Bugzilla::WebService::Server.
$value = Bugzilla::WebService::Server->datetime_format_outbound($value);
$value =~ s/-//g;
}
return XMLRPC::Data->type($type)->value($value);
};
}
sub initialize {
my $self = shift;
my %retval = $self->SUPER::initialize(@_);
......
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