Akamai-Open-DiagnosticTools
view release on metacpan or search on metacpan
lib/Akamai/Open/DiagnosticTools.pm view on Meta::CPAN
package Akamai::Open::DiagnosticTools;
BEGIN {
$Akamai::Open::DiagnosticTools::AUTHORITY = 'cpan:PROBST';
}
# ABSTRACT: The Akamai Open DiagnosticTools API Perl client
$Akamai::Open::DiagnosticTools::VERSION = '0.02';
use strict;
use warnings;
use v5.10;
use Moose;
use JSON;
#XXX create a useful scheme for REST methods
use constant {
TOOLS_URI => '/diagnostic-tools',
DIG_URI => '/v1/dig',
MTR_URI => '/v1/mtr',
LOC_URI => '/v1/locations'
};
extends 'Akamai::Open::Request::EdgeGridV1';
has 'tools_uri' => (is => 'ro', default => TOOLS_URI);
has 'dig_uri' => (is => 'ro', default => DIG_URI);
has 'mtr_uri' => (is => 'ro', default => MTR_URI);
has 'loc_uri' => (is => 'ro', default => LOC_URI);
has 'baseurl' => (is => 'rw', trigger => \&Akamai::Open::Debug::debugger);
has 'last_error'=> (is => 'rw');
sub validate_base_url {
my $self = shift;
my $base = $self->baseurl();
$self->debug->logger->debug('validating baseurl');
$base =~ s{/$}{} && $self->baseurl($base);
return;
}
foreach my $f (qw/dig mtr locations/) {
before $f => sub {
my $self = shift;
my $param = @_;
$self->validate_base_url();
my $uri = $self->baseurl() . $self->tools_uri();
$self->debug->logger->debug("before hook called for $f") if($self->debug->logger->is_debug());
#XXX create a useful scheme for REST methods
given($f) {
when($_ eq 'dig') {
$uri .= $self->dig_uri();
$self->request->method('GET');
}
when($_ eq 'mtr') {
$uri .= $self->mtr_uri();
$self->request->method('GET');
}
when($_ eq 'locations') {
$uri .= $self->loc_uri();
$self->request->method('GET');
}
}
$self->debug->logger->info('filling request object with data');
$self->request->uri(URI->new($uri));
};
}
sub dig {
my $self = shift;
my $param = shift;
( run in 0.623 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )