API-Plesk
view release on metacpan or search on metacpan
lib/API/Plesk/Response.pm view on Meta::CPAN
package API::Plesk::Response;
use strict;
use warnings;
use Data::Dumper;
sub new {
my ( $class, %attrs) = @_;
$class = ref $class || $class;
my $operator = $attrs{operator};
my $operation = $attrs{operation};
my $response = $attrs{response};
my $results = [];
my $is_success = 1;
# internal API::Plesk error
if ( $attrs{error} ) {
$results = [{
errcode => '',
errtext => $attrs{error},
status => 'error'
}];
$is_success = '';
}
# remote system plesk error
elsif ( exists $response->{packet}->{'system'} ) {
$results = [$response->{packet}->{'system'}];
$is_success = '';
$operator = 'system';
$operation = '';
}
else {
eval {
for my $result ( @{$response->{packet}->{$operator}->{$operation}->[0]->{result}} ) {
push @$results, $result;
$is_success = '' if $result->{status} && $result->{status} eq 'error';
}
1;
} || do {
$results = [{
errcode => '',
errtext => "Internal Plesk error: $_.\nError: $@\nDetails:" . Dumper( $response ),
status => 'error'
}];
};
}
my $self = {
results => $results,
operator => $operator,
operation => $operation,
is_success => $is_success,
};
return bless $self, $class;
}
sub is_success { $_[0]->{is_success} }
sub id { $_[0]->{results}->[0]->{id} }
sub guid { $_[0]->{results}->[0]->{guid} }
sub data {
my ( $self ) = @_;
( run in 1.386 second using v1.01-cache-2.11-cpan-39bf76dae61 )