API-ParallelsWPB
view release on metacpan or search on metacpan
lib/API/ParallelsWPB/Response.pm view on Meta::CPAN
package API::ParallelsWPB::Response;
use strict;
use warnings;
use JSON::XS qw/decode_json/;
# ABSTRACT: processing of API responses
our $VERSION = '0.03'; # VERSION
our $AUTHORITY = 'cpan:IMAGO'; # AUTHORITY
sub new {
my ( $class, $res ) = @_;
my $success = $res->is_success;
my $status = $res->status_line;
my ( $json_content, $response, $error );
if ( $success ) {
$json_content = $res->content;
$response = decode_json( $json_content )->{response} if $json_content;
}
else {
my $error_json = $res->content;
eval { $error = decode_json( $error_json )->{error}->{message}; 1; }
or do { $error = $error_json };
}
return bless(
{
success => $success,
json => $json_content,
error => $error,
response => $response,
status => $status
},
$class
);
}
sub json {
my $self = shift;
return $self->{json};
}
sub success {
my $self = shift;
return $self->{success};
}
sub response {
my $self = shift;
return $self->{response};
}
sub status {
my $self = shift;
return $self->{status};
}
sub error {
my $self = shift;
return $self->{error};
}
1;
__END__
=pod
=encoding UTF-8
=head1 NAME
API::ParallelsWPB::Response - processing of API responses
=head1 VERSION
( run in 2.828 seconds using v1.01-cache-2.11-cpan-39bf76dae61 )