Elive
view release on metacpan or search on metacpan
lib/Elive/Connection/SDK.pm view on Meta::CPAN
if ($debug);
$soap = SOAP::Lite->new();
my %proxy_opts;
$proxy_opts{timeout} = $self->timeout
if $self->timeout;
$soap->proxy($proxy, %proxy_opts);
$self->_soap($soap);
}
return $soap;
}
=head2 call
my $som = $self->call( $cmd, %params );
Performs an Elluminate SOAP method call. Returns the response as a
SOAP::SOM object.
=cut
sub call {
my ($self, $cmd, @params) = @_;
return $self->SUPER::call( $cmd, adapter => 'default', @params );
}
sub _preamble {
my ($self,$cmd) = @_;
die "Not logged in"
unless ($self->user);
my @user_auth = (map {HTML::Entities::encode_entities( $_ )}
($self->user, $self->pass));
my @preamble = (
(SOAP::Data
->name('request')
->uri('http://www.soapware.org')
->prefix('m')
->value('')),
);
push (@preamble, SOAP::Data->name('command')->value($cmd))
if $cmd;
my $auth = sprintf (<<'EOD', @user_auth);
<h:BasicAuth
xmlns:h="http://soap-authentication.org/basic/2001/10/"
soap:mustUnderstand="1">
<Name>%s</Name>
<Password>%s</Password>
</h:BasicAuth>
EOD
return (@preamble, SOAP::Header->type(xml => $auth));
};
=head2 login
Returns the login user as an object of type L<Elive::Entity::User>.
=cut
sub login {
my ($self) = @_;
my $login_entity = $self->_login;
unless ($login_entity) {
my $username = $self->user
or return;
$login_entity = Elive::Entity::User->get_by_loginName($username,
connection => $self)
or die "unable to get login user: $username\n";
$self->_login($login_entity);
}
return $login_entity;
}
=head2 server_details
Returns the server details as an object of type L<Elive::Entity::ServerDetails>.
=cut
sub server_details {
my $self = shift;
my $server_details = $self->_server_details;
unless ($server_details) {
$server_details = Elive::Entity::ServerDetails->list(connection => $self);
$self->_server_details($server_details);
}
#
# this site could be running multiple servers
#
return wantarray ? @$server_details : $server_details->[0];
}
=head2 version
Return the Elluminate I<Live!> Server version
=cut
sub version {
my $self = shift;
( run in 1.966 second using v1.01-cache-2.11-cpan-39bf76dae61 )