API-ParallelsWPB
view release on metacpan or search on metacpan
Revision history for Perl extension API::ParallelsWPB
0.03 Tue Jul 1 08:40:44 2014 +0000
- fixed utf8 flag in request
- JSON replaced with JSON::XS
- If error is not in JSON, it is returned "as is"
0.01 Tue Nov 26 12:22:16 2013
- first release;
SYNOPSIS
my $client = API::ParallelsWPB->new( username => 'admin', password => 'passw0rd', server => 'builder.server.mysite.ru' );
my $response = $client->get_sites_info;
if ( $response->success ) {
for my $site ( @{ $response->response } ) {
say "UUID: ". $site->{uuid};
}
}
else {
warn "Error occured: " . $response->error . ", Status: " . $response->status;
}
METHODS
new($class, %param)
Creates new client instance. Parameters for "new" are:
username
Username for connection to Parallels WebPresence Builder instance.
Required parameter.
```perl
my $client = API::ParallelsWPB->new(username => 'admin', password => 'passw0rd', server => 'builder.server.mysite.ru');
my $response = $client->get_sites_info;
if ($response->success) {
for my $site (@{$response->response}) {
say "UUID: ". $site->{ uuid };
}
}
else {
warn "Error occured: " . $response->error . ", Status: " . $response->status;
}
```
# METHODS
## new
Creates new client instance. Parameters for ```new``` are:
- username
lib/API/ParallelsWPB.pm view on Meta::CPAN
=head1 SYNOPSIS
my $client = API::ParallelsWPB->new( username => 'admin', password => 'passw0rd', server => 'builder.server.mysite.ru' );
my $response = $client->get_sites_info;
if ( $response->success ) {
for my $site ( @{ $response->response } ) {
say "UUID: ". $site->{uuid};
}
}
else {
warn "Error occured: " . $response->error . ", Status: " . $response->status;
}
=head1 METHODS
=head2 B<new($class, %param)>
Creates new client instance. Parameters for C<new> are:
=over
lib/API/ParallelsWPB/Response.pm view on Meta::CPAN
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;
lib/API/ParallelsWPB/Response.pm view on Meta::CPAN
sub status {
my $self = shift;
return $self->{status};
}
sub error {
my $self = shift;
return $self->{error};
}
1;
__END__
=pod
=encoding UTF-8
lib/API/ParallelsWPB/Response.pm view on Meta::CPAN
Returns 1 if request succeeded, 0 otherwise.
=head2 B<response($self)>
Returns munged response from service. According to method, it can be scalar, hashref of arrayref.
=head2 B<status($self)>
Returns response status line.
=head2 B<error($self)>
Returns munged error text.
=head1 SEE ALSO
L<Parallels Presence Builder Guide|http://download1.parallels.com/WPB/Doc/11.5/en-US/online/presence-builder-standalone-installation-administration-guide>
L<API::ParallelsWPB>
L<API::ParallelsWPB::Requests>
=head1 AUTHORS
t/02_response.t view on Meta::CPAN
ok( $response->success, 'Response status succeeded' );
is(
$response->response,
'b6a09c08f880f229c091de03b91bdbc3',
'Response content is ok'
);
is( $response->status, '200 OK', 'Status line is ok' );
};
subtest 'Response errored' => sub {
plan tests => 4;
my $r = HTTP::Response->new;
$r->code( 404 );
$r->content(
'{"error":{"message":"Requested resource does not exist by URI: /api/5.3/sites/"}}'
);
my $response = API::ParallelsWPB::Response->new( $r );
ok( !$response->success, 'Response is not succeeded' );
like(
$response->error,
qr/Requested resource does not exist/,
'Error message is ok'
);
ok( !$response->response, 'No content given ok' );
is( $response->status, '404 Not Found', 'Response status is ok' );
};
( run in 0.766 second using v1.01-cache-2.11-cpan-65fba6d93b7 )