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 )