From 3e8bc1837343e34bac7106be458add3982fb77da Mon Sep 17 00:00:00 2001 From: jeff Date: Sat, 14 Oct 2006 21:13:30 +0000 Subject: Initial import --- lib/Net/Plesk/Response.pm | 114 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 114 insertions(+) create mode 100644 lib/Net/Plesk/Response.pm (limited to 'lib/Net/Plesk/Response.pm') diff --git a/lib/Net/Plesk/Response.pm b/lib/Net/Plesk/Response.pm new file mode 100644 index 0000000..58203f7 --- /dev/null +++ b/lib/Net/Plesk/Response.pm @@ -0,0 +1,114 @@ +package Net::Plesk::Response; + +use strict; +use XML::Simple; +use XML::XPath; +use XML::XPath::XMLParser; + +=head1 NAME + +Net::Plesk::Response - Plesk response object + +=head1 SYNOPSIS + + my $response = $plesk->some_method( $and, $args ); + + if ( $response->is_success ) { + + my $id = $response->id; + #... + + } else { + + my $error = $response->error; #error code + my $errortext = $response->errortext; #error message + #... + } + +=head1 DESCRIPTION + +The "Net::Plesk::Response" class represents Plesk responses. + +=cut + +sub new { + my $proto = shift; + my $class = ref($proto) || $proto; + my $self = {}; + bless($self, $class); + + my $data = shift; + $data =~ /^\<\?xml version=\"1.0\"\?\>(.*)$/s; + + my $xp = XML::XPath->new(xml => $1); + my $nodeset = $xp->find('//result'); + foreach my $node ($nodeset->get_nodelist) { + push @{$self->{'results'}}, XML::XPath::XMLParser::as_string($node); + } + + $self; +} + +sub is_success { + my $self = shift; + my $status = 1; + foreach my $result (@{$self->{'results'}}) { + $status = (XMLin($result)->{'status'} eq 'ok'); + last unless $status; + } + $status; +} + +sub error { + my $self = shift; + my @errcode; + foreach my $result (@{$self->{'results'}}) { + my $errcode = XMLin($result)->{'errcode'}; + push @errcode, $errcode if $errcode; + } + return wantarray ? @errcode : $errcode[0]; +} + +sub errortext { + my $self = shift; + my @errtext; + foreach my $result (@{$self->{'results'}}) { + my $errtext = XMLin($result)->{'errtext'}; + push @errtext, $errtext if $errtext; + } + return wantarray ? @errtext : $errtext[0]; +} + +sub id { + my $self = shift; + my @id; + foreach my $result (@{$self->{'results'}}) { + my $id = XMLin($result)->{'id'}; + push @id, $id if $id; + } + return wantarray ? @id : $id[0]; +} + + +=head1 BUGS + +Needs better documentation. + +=head1 SEE ALSO + +L, + +=head1 AUTHOR + +Jeff Finucane Ejeff@cmh.netE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2006 Jeff Finucane + +This library is free software; you can redistribute it and/or modify +it under the same terms as Perl itself. + +=cut + +1; -- cgit v1.2.1