1 package Net::Plesk::Response;
6 use XML::XPath::XMLParser;
10 Net::Plesk::Response - Plesk response object
14 my $response = $plesk->some_method( $and, $args );
16 if ( $response->is_success ) {
18 my $id = $response->id;
23 my $error = $response->error; #error code
24 my $errortext = $response->errortext; #error message
30 The "Net::Plesk::Response" class represents Plesk responses.
36 my $class = ref($proto) || $proto;
41 if ($data =~ /^\<\?xml version=\"1.0\"\?\>(.*)$/s){
44 $data =~ s/[^\w\s]/ /g; # yes, we lose stuff
45 $data = '<?xml version="1.0"?>' .
46 '<packet version="' . $self->{'version'} . '">' .
47 "<system><status>error</status><errcode>500</errcode>" .
48 "<errtext>Malformed Plesk response:" . $data . "</errtext>".
52 my $xp = XML::XPath->new(xml => $data);
53 my $nodeset = $xp->find('//result');
54 foreach my $node ($nodeset->get_nodelist) {
55 push @{$self->{'results'}}, XML::XPath::XMLParser::as_string($node);
57 $nodeset = $xp->find('//system');
58 foreach my $node ($nodeset->get_nodelist) {
59 my $parsed = XML::XPath::XMLParser::as_string($node);
60 $parsed =~ s/\<(\/?)system\>/<$1result>/ig;
61 push @{$self->{'results'}}, $parsed;
70 foreach my $result (@{$self->{'results'}}) {
71 $status = (XMLin($result)->{'status'} eq 'ok');
80 foreach my $result (@{$self->{'results'}}) {
81 my $errcode = XMLin($result)->{'errcode'};
82 push @errcode, $errcode if $errcode;
84 return wantarray ? @errcode : $errcode[0];
90 foreach my $result (@{$self->{'results'}}) {
91 my $errtext = XMLin($result)->{'errtext'};
92 push @errtext, $errtext if $errtext;
94 return wantarray ? @errtext : $errtext[0];
100 foreach my $result (@{$self->{'results'}}) {
101 my $id = XMLin($result)->{'id'};
102 push @id, $id if $id;
104 return wantarray ? @id : $id[0];
110 Needs better documentation.
118 Jeff Finucane E<lt>jeff@cmh.netE<gt>
120 =head1 COPYRIGHT AND LICENSE
122 Copyright (C) 2006 Jeff Finucane
124 This library is free software; you can redistribute it and/or modify
125 it under the same terms as Perl itself.