API::Plesk::Response - Class for processing server answers with errors handling.


API-Plesk documentation Contained in the API-Plesk distribution.

Index


Code Index:

NAME

Top

API::Plesk::Response - Class for processing server answers with errors handling.

SYNOPSIS

Top

 use API::Plesk::Response;
 my $res = API::Plesk::Response->new($server_answer, @errors_list);
 # $server_answer -- data from server
 # @errors_list -- list of errors

DESCRIPTION

Top

This class is intended for convenient processing results of work of methods of class API::Plesk.

METHODS

Top

new($server_answer, @errors))

Create server response object.

API::Plesk::Response->new($server_answer, @errors) $server_answer - server answer, @errors - list of errors.

get_id

Get executed operation ID

Return $self->get_data->[0]->{id}, if no errors and server answer consists of only one block.

is_success

Get operation result

Return true if server answer not blank and no errors in answer.

get_data

Get data from response

Return answer response if $instance->is_success is true.

get_error_code

Get all error codes from response as arref

get_error_string

Return joined by ', ' error codes.

EXAMPLES

Top

  use API::Plesk::Response;

  # API::Plesk::Response->new ('server answer', @errors_list)

  # Good answers

  my $res1 = API::Plesk::Response->new('server answer', '');
  print 'All ok' if $res1->is_success;
  # print "All ok"

  print $res1->get_data;
  # print "server answer"

  print $res1->get_error_string;
  # Print '', # because no errors




  # One error present

  my $res2 = API::Plesk::Response->new('', 'error1');
  print 'Operation failed' unless $res2->is_success; 
  # print "Operation Failed"

  print $res2->get_data;
  # print ''

  print $res2->get_error_string;
  # Print '', # print "error1"

  # Multiple errors

  my $res3 = API::Plesk::Response->new('', 'error1', 'error2', 'error3');
  print $res3->get_error_string; # print "error1, error2, error3"

EXPORT

Top

None by default.

SEE ALSO

Top

Blank.

AUTHOR

Top

Odintsov Pavel <nrg[at]cpan.org>

COPYRIGHT AND LICENSE

Top


API-Plesk documentation Contained in the API-Plesk distribution.
#
# DESCRIPTION:
#   Plesk communicate interface. Server response class.
# AUTHORS:
#   Pavel Odintsov (nrg) <pavel.odintsov@gmail.com>
#
#========================================================================

package API::Plesk::Response;

use strict;
use warnings;

our $VERSION = '1.03';


# Create server response object
# STATIC, INSTANCE
sub new {
    my ($class, $server_answer, @errors) = @_;

    $class = ref $class || $class;
    my $self = {
                    error_codes  => scalar @errors > 0 ? \@errors : '',
                    answer_data  => $server_answer || '',
               };

    return bless $self, $class;
}

# Get executed operation ID
# INSTANCE
sub get_id {
    my $self = shift;

    return $self->is_success && length @{$self->get_data} == 1 ? 
        $self->get_data->[0]->{id} : '';
}

# Return true if no errors in response
# INSTANCE
sub is_success {
    my $self = shift;

    my $has_errors = ref $self->{'error_codes'} eq 'ARRAY' && 
                     scalar @{ $self->{'error_codes'} } > 0;
    
    return ($has_errors || !$self->{'answer_data'}) ? '' : 1;
}

# Get data from response
# INSTANCE
sub get_data {
    my $self = shift;

    return $self->is_success ? $self->{'answer_data'} : '';
}

# Get all error codes from message as arref
# INSTANCE
sub get_error_codes {
    my $self = shift;

    if (ref $self->{'error_codes'} eq 'ARRAY') {
        return wantarray ? @{ $self->{'error_codes'} } : $self->{'error_codes'};
    } else {
        return wantarray ? ( ) : '';
    }
}


# Get error codes as string
# INSTANCE
sub get_error_string {
    my $self = shift;

    return join ', ', $self->get_error_codes;
}


1;
__END__