G
Guest
Gast
Hi zusammen,
ich suche eine Möglichkeit um auf einen Webservice via XML-RPC zuzugreifen. Leider helfen mir die Beispiele von Galileo Open Books und Co. nicht so richtig weiter?
Angenommen ich habe folgende *.pm-Datei:
Ein Anfang wäre z.B. den Login an dem Webservice (Bugzilla) durchzuführen. Aber da scheiterts schon bei mir. Wie kann ich auf die Login-Methode zugreifen?
Für einen ersten Einstieg wäre ich extrem dankbar.
ich suche eine Möglichkeit um auf einen Webservice via XML-RPC zuzugreifen. Leider helfen mir die Beispiele von Galileo Open Books und Co. nicht so richtig weiter?
Angenommen ich habe folgende *.pm-Datei:
Code:
package Bugzilla::WebService::User;
use strict;
use base qw(Bugzilla::WebService);
import SOAP::Data qw(type);
use Bugzilla;
use Bugzilla::Constants;
use Bugzilla::Error;
use Bugzilla::User;
use Bugzilla::Util qw(trim);
use Bugzilla::Token;
##############
# User Login #
##############
sub login {
my ($self, $params) = @_;
my $remember = $params->{remember};
# Convert $remember from a boolean 0/1 value to a CGI-compatible one.
if (defined($remember)) {
$remember = $remember? 'on': '';
}
else {
# Use Bugzilla's default if $remember is not supplied.
$remember =
Bugzilla->params->{'rememberlogin'} eq 'defaulton'? 'on': '';
}
# Make sure the CGI user info class works if necessary.
my $cgi = Bugzilla->cgi;
$cgi->param('Bugzilla_login', $params->{login});
$cgi->param('Bugzilla_password', $params->{password});
$cgi->param('Bugzilla_remember', $remember);
Bugzilla->login;
return { id => type('int')->value(Bugzilla->user->id) };
}
sub create {
my $self = shift;
my ($params) = @_;
Bugzilla->user->in_group('editusers')
|| ThrowUserError("auth_failure", { group => "editusers",
action => "add",
object => "users"});
my $email = trim($params->{email})
|| ThrowCodeError('param_required', { param => 'email' });
my $realname = trim($params->{full_name});
my $password = trim($params->{password}) || '*';
my $user = Bugzilla::User->create({
login_name => $email,
realname => $realname,
cryptpassword => $password
});
return { id => type('int')->value($user->id) };
}
1;
Ein Anfang wäre z.B. den Login an dem Webservice (Bugzilla) durchzuführen. Aber da scheiterts schon bei mir. Wie kann ich auf die Login-Methode zugreifen?
Für einen ersten Einstieg wäre ich extrem dankbar.