API-Drip-Request

 view release on metacpan or  search on metacpan

Build.PL  view on Meta::CPAN

                                  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     => {

META.json  view on Meta::CPAN

         "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"
         }
      }
   },

META.yml  view on Meta::CPAN

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 )