Activiti-Rest-Client
view release on metacpan or search on metacpan
lib/Activiti/Rest/Client.pm view on Meta::CPAN
package Activiti::Rest::Client;
use Activiti::Sane;
use Carp qw(confess);
use Moo;
use Data::Util qw(:check :validate);
use JSON qw(decode_json encode_json);
use URI::Escape qw(uri_escape);
use Activiti::Rest::Response;
our $VERSION = "0.1259";
#see: http://www.activiti.org/userguide
=head1 NAME
Activiti::Rest::Client - Low level client for the Activiti Rest API
=head1 AUTHORS
Nicolas Franck C<< <nicolas.franck at ugent.be> >>
=head1 NOTE
This is a work in progress. More documentation will be added in time
=head1 PROJECT
see http://www.activiti.org/userguide
=head1 SYNOPSIS
my $client = Activiti::Rest::Client->new(
url => 'http://kermit:kermit@localhost:8080/activiti-rest/service'
);
my $res = $client->process_definitions;
die("no parsed content") unless $res->has_parsed_content;
my $pdefs = $res->parsed_content;
my @ids = map { $_->{id} } @{ $pdefs->{data} };
for my $id(@ids){
print Dumper($client->process_definition(processDefinitionId => $id)->parsed_content);
}
=head1 CONSTRUCTOR parameters
=head2 url
base url of the activiti rest api
activiti-rest uses basic http authentication, so username and password should be included in the url
e.g.
http://kermit:kermit@localhost:8080/activiti-rest/service
=cut
has url => (
is => 'ro',
isa => sub { $_[0] =~ /^https?:\/\//o or die("url must be a valid web url\n"); },
required => 1
);
=head2 timeout
timeout in seconds when connecting to the activiti rest api
default value is 180
=cut
has timeout => (
is => 'ro',
isa => sub { is_integer($_[0]) && $_[0] >= 0 || die("timeout should be natural number"); },
lazy => 1,
default => sub { 180; }
);
has ua => (
is => 'ro',
lazy => 1,
builder => '_build_ua'
);
sub _build_ua {
require Activiti::Rest::UserAgent::LWP;
Activiti::Rest::UserAgent::LWP->new(
url => $_[0]->url(),
timeout => $_[0]->timeout()
);
}
=head1 METHODS
=head2 deployments
Retrieve list of Deployments
parameters: see user guide (http://www.activiti.org/userguide/index.html#N13293)
equal to rest call:
( run in 1.115 second using v1.01-cache-2.11-cpan-39bf76dae61 )