API-Drip-Request
view release on metacpan or search on metacpan
dist_author => q{Dan Wright <Dan@DWright.Org>},
dist_version_from => 'lib/API/Drip/Request.pm',
release_status => 'stable',
configure_requires => { 'Module::Build' => '0', },
build_requires => { 'Test::More' => '0', },
requires => {
'Carp' => 0,
'Data::Printer' => 0,
'File::HomeDir' => 0,
'File::Spec' => 0,
'HTTP::Request::Common' => 0,
'JSON' => 0,
'LWP::UserAgent' => 0,
'Params::ValidationCompiler' => 0,
'Readonly' => 0,
'Types::Standard' => 0,
'URI' => 0,
'YAML' => 0,
},
add_to_cleanup => ['API-Drip-*'],
meta_merge => {
"requires" : {
"Module::Build" : "0"
}
},
"runtime" : {
"requires" : {
"Carp" : "0",
"Data::Printer" : "0",
"File::HomeDir" : "0",
"File::Spec" : "0",
"HTTP::Request::Common" : "0",
"JSON" : "0",
"LWP::UserAgent" : "0",
"Params::ValidationCompiler" : "0",
"Readonly" : "0",
"Types::Standard" : "0",
"URI" : "0",
"YAML" : "0"
}
}
},
name: API-Drip-Request
provides:
API::Drip::Request:
file: lib/API/Drip/Request.pm
version: '0.05'
requires:
Carp: '0'
Data::Printer: '0'
File::HomeDir: '0'
File::Spec: '0'
HTTP::Request::Common: '0'
JSON: '0'
LWP::UserAgent: '0'
Params::ValidationCompiler: '0'
Readonly: '0'
Types::Standard: '0'
URI: '0'
YAML: '0'
resources:
bugtracker: https://github.com/dwright/API-Drip/issues
repository: https://github.com/dwright/API-Drip.git
lib/API/Drip/Request.pm view on Meta::CPAN
use warnings;
use Params::ValidationCompiler qw( validation_for );
use Types::Standard qw( Str HashRef CodeRef);
use YAML;
use File::Spec;
use File::HomeDir;
use Readonly;
use Carp;
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON;
use URI;
use Data::Printer;
Readonly our %DEFAULTS => (
DRIP_TOKEN => undef,
DRIP_ID => undef,
DRIP_URI => 'https://api.getdrip.com/v2',
DRIP_AGENT => 'API::Drip',
DRIP_DEBUG => 0,
lib/API/Drip/Request.pm view on Meta::CPAN
my $request_validator = validation_for( params => [ {type => Str()}, {type => Str()}, {type => HashRef(), optional => 1} ] );
sub do_request {
my $self = shift;
my ($method, $endpoint, $content) = $request_validator->(@_);
my $uri = URI->new($self->{DRIP_URI});
$uri->path_segments( $uri->path_segments, $self->{DRIP_ID}, split( '/', $endpoint) );
$self->{debugger}->( 'Requesting: ' . $uri->as_string );
my $request = HTTP::Request->new( $method => $uri->as_string, );
if ( ref($content) ) {
$request->content_type('application/vnd.api+json');
$request->content( encode_json( $content ) );
}
$request->authorization_basic( $self->{DRIP_TOKEN}, '' );
$self->{agent} //= LWP::UserAgent->new( agent => $self->{DRIP_AGENT} );
my $result = $self->{agent}->request( $request );
unless ( $result->is_success ) {
( run in 0.265 second using v1.01-cache-2.11-cpan-4505f990765 )