API-Handle
view release on metacpan - search on metacpan
view release on metacpan or search on metacpan
NAME
API::Handle
VERSION
version 0.02
_tied
Recursively tie \[ key => $val, key => $val, ... ] data to create
preserved-order hashes ( needed for SOAP ).
AUTHOR
Nour Sharabash <amirite@cpan.org>
COPYRIGHT AND LICENSE
This software is copyright (c) 2013 by Nour Sharabash.
This is free software; you can redistribute it and/or modify it under
the same terms as the Perl 5 programming language system itself.
lib/API/Handle.pm view on Meta::CPAN
, verbose => 1
, dumper => 1
, debug => 1
, pid => 1
);
require Nour::Printer;
return new Nour::Printer ( %conf );
}
);
has _database => (
is => 'rw'
, isa => 'Nour::Database'
, required => 1
, lazy => 1
, default => sub {
my $self = shift;
my %conf = $self->config->{database} ? %{ $self->config->{database} } : (
# default options here
);
%conf = ();
require Nour::Database;
return new Nour::Database ( %conf );
}
);
#has _util # TODO factor all the _methods to $self->util->methods... or not
lib/API/Handle/Google/DFP.pm view on Meta::CPAN
if ( $conf->{auth}{token}{access_token} and $conf->{auth}{token}{expires_at} and $conf->{auth}{token}{expires_at} > $time ) {
$self->ua->default_header( 'Authorization' => "$conf->{auth}{token}{token_type} $conf->{auth}{token}{access_token}" );
}
elsif ( $conf->{auth}{token}{refresh_token} ) {
my $req = new HTTP::Request;
$req->headers->header( 'Content-Type' => 'application/x-www-form-urlencoded' );
$req->method( 'POST' );
$req->uri( $conf->{auth}{uri}{token} );
my $data = $self->_encode( type => 'form', data => {
grant_type => 'refresh_token'
, client_id => $conf->{auth}{client}{id}
, client_secret => $conf->{auth}{client}{secret}
, refresh_token => $conf->{auth}{token}{refresh_token}
} );
$req->content( $data );
my $res = $self->ua->request( $req );
if ( $res->code == 200 ) {
my $data = $self->_decode( type => 'json', data => $res->content );
$data->{expires_at} = time + $data->{expires_in};
$self->merge_config( $conf->{auth}->{token}, $data );
$self->write_config( 'config/google/dfp/auth/private/token.yml', $conf->{auth}->{token} );
}
}
if ( $conf->{auth}{token}{access_token} and $conf->{auth}{token}{expires_at} and $conf->{auth}{token}{expires_at} > $time ) {
$self->ua->default_header( 'Authorization' => "$conf->{auth}{token}{token_type} $conf->{auth}{token}{access_token}" );
}
else {
carp 'no access token';
}
# Setup match-spec vars for request_prepare.
my ( $scheme, $host, $path ) = $self->uri =~ /^(https?):\/\/([^\/]+)(\/.+)$/;
# Add request wrapper.
$self->ua->add_handler(
request_prepare => sub {
my ( $req, $ua, $h ) = @_;
# Create SOAP envelope.
if ( my $data = $req->content ) {
$self->_camelize( $data );
$data = {
'soap:Envelope' => {
'-xmlns' => $self->uri
, '-xmlns:soap' => 'http://schemas.xmlsoap.org/soap/envelope/'
, '-xmlns:xsi' => 'http://www.w3.org/2001/XMLSchema-instance'
, 'soap:Header' => {
'RequestHeader' => {
'networkCode' => $conf->{network_code}
,'applicationName' => $conf->{application_name}
}
}
, 'soap:Body' => $data
}
};
my $xml = $self->_xml->write( $data );
$req->content( $xml );
$req->headers->header( 'Content-Type' => 'text/xml; charset=utf-8' );
# Uncomment this to view generated SOAP xml/envelope.
# $self->debug( $xml );
}
}
, m_scheme => $scheme
, m_host => $host
, m_path_match => qr/^\Q$path\E/
);
# Add response wrapper.
$self->ua->add_handler(
response_done => sub {
my ( $res, $ua, $h ) = @_;
if ( my $data = $res->content ) {
$data = $self->_xml->parse( $data );
$data = delete $data->{ 'soap:Envelope' }{ 'soap:Body' };
$self->_decamelize( $data );
$res->content( $data );
}
}
, m_scheme => $scheme
, m_host => $host
, m_path_match => qr/^\Q$path\E/
, m_code => 200
, m_media_type => 'text/xml'
);
return $prev;
lib/API/Handle/OpenX.pm view on Meta::CPAN
# Setup match-spec vars for request_prepare.
my ( $scheme, $host, $path ) = $self->uri =~ /^(https?):\/\/([^\/]+)(\/.+)$/;
# Add request wrapper.
$self->ua->add_handler(
request_prepare => sub {
my ( $req, $ua, $h ) = @_;
# Create SOAP envelope.
if ( my $data = $req->content ) {
my $json = $self->_encode( type => 'json', data => $data );
$req->content( $json );
$req->headers->header( 'Content-Type' => 'application/json; charset=utf-8' );
# Uncomment this to view generated JSON content.
# $self->debug( $json );
}
}
, m_scheme => $scheme
, m_host => $host
, m_path_match => qr/^\Q$path\E/
);
# Add response wrapper.
$self->ua->add_handler(
response_done => sub {
my ( $res, $ua, $h ) = @_;
if ( my $data = $res->content ) {
$data = $self->_decode( type => 'json', data => $data );
$res->content( $data );
}
}
, m_scheme => $scheme
, m_host => $host
, m_path_match => qr/^\Q$path\E/
, m_code => 200
);
return $prev;
};
view all matches for this distributionview release on metacpan - search on metacpan
( run in 0.768 second using v1.00-cache-2.02-grep-82fe00e-cpan-4673cadbf75 )