Conductrics-Client

 view release on metacpan or  search on metacpan

lib/Conductrics/Client.pm  view on Meta::CPAN

use namespace::autoclean;
use Moose;
use MooseX::Types::Moose qw( Str );
use MooseX::Types::URI qw(Uri);
use URI;
use URI::QueryParam;
use JSON::MaybeXS;
use JSON::Schema;
use Time::HiRes;
use LWP::UserAgent;
use HTTP::Request;

our $VERSION = '0.003';
$VERSION = eval $VERSION;

sub build_uri { 
    my($self)=@_;
    return URI->new($self->baseUrl); 
}

has 'apiKey' => (is=>'ro', isa=>Str, required=>1);

lib/Conductrics/Client.pm  view on Meta::CPAN

    my ($self, $agent_name, $content) = @_;
    my $uri = $self->baseUri->clone;
    $uri->path_segments($self->ownerCode, $agent_name);
    my %parameters = (apikey=>$self->apiKey);
    for my $k (keys %parameters) {
	$uri->query_param_append($k, $parameters{$k});
    }
    if ('HASH' eq ref $content) {
	$content=JSON::MaybeXS::encode_json($content);
    }
    my $request = HTTP::Request->new("PUT", $uri, undef, $content);
    $request->header(Content_Type => 'application/json');
    #use Data::Dumper;
    #print Dumper($request);
    my $response = $ua->request($request);
    if ($response->is_success) {
	return JSON::MaybeXS::decode_json($response->decoded_content);
    } else {
	warn "Content: ", $response->decoded_content;  # or whatever
	warn "Code: ", $response->code;
	warn "Err:", $response->message;

lib/Conductrics/Client.pm  view on Meta::CPAN


sub delete_agent {
    my ($self, $agent_name) = @_;
    my $uri = $self->baseUri->clone;
    $uri->path_segments($self->ownerCode, $agent_name);
    my %parameters = (apikey=>$self->apiKey);
    for my $k (keys %parameters) {
	$uri->query_param_append($k, $parameters{$k});
    }

    my $request = HTTP::Request->new("DELETE", $uri);
    my $response = $ua->request($request);
    if ($response->is_success) {
	return JSON::MaybeXS::decode_json($response->decoded_content);
    } else {
	warn "Content: ", $response->decoded_content;  # or whatever
	warn "Code: ", $response->code;
	warn "Err:", $response->message;
	die $response->status_line;
    }
}



( run in 0.546 second using v1.01-cache-2.11-cpan-de7293f3b23 )