PEF-Front

 view release on metacpan or  search on metacpan

Changes  view on Meta::CPAN

0.18 Tue, 09 May 2017 11:30:00 GMT
         - add answer_http_response and answer_data  
          
0.17 Tue, 09 May 2017 11:30:00 GMT
         - add http status set to result and ajax 
          
0.16 Mon, 06 Mar 2017 11:30:00 GMT
         - fix chained model call
          
0.15 Fri, 17 Feb 2017 09:00:00 GMT
         - fix request reading in coro+ae case
         - new config parameter cfg_url_only_camel_case
          
0.14 Wed, 25 Jan 2017 18:00:00 GMT
         - fixed content-type of static files for .js and .css
          
0.13 Wed, 05 Oct 2016 22:29:25 GMT
         - implement PEF::Front::Model::chain_links()
         
0.12 Sat, 01 Oct 2016 16:29:25 GMT
         - model method call optimization

lib/PEF/Front/Oauth.pm  view on Meta::CPAN


use strict;
use warnings;
use URI;
use LWP::UserAgent;
use HTTP::Request::Common;
use JSON;
use PEF::Front::Config;
use PEF::Front::Session;

my $coro_ae_lwp;

BEGIN {
	if ($INC{'Coro/AnyEvent.pm'}) {
		eval "use AnyEvent::HTTP::LWP::UserAgent";
		$coro_ae_lwp = ($@) ? 0 : 1;
	} else {
		$coro_ae_lwp = 0;
	}
}

sub _authorization_server {
	die 'unimplemented base method';
}

sub _token_request {
	die 'unimplemented base method';
}

lib/PEF/Front/Oauth.pm  view on Meta::CPAN

	$uri->as_string;
}

sub exchange_code_to_token {
	my ($self, $request) = @_;
	if ($request->{code}) {
		my $token_answer;
		delete $self->{session}->data->{oauth_state};
		$self->{session}->store;
		my $exception;
		if ($coro_ae_lwp && $Coro::main != $Coro::current) {
			my $lwp_user_agent = AnyEvent::HTTP::LWP::UserAgent->new;
			$lwp_user_agent->timeout(cfg_oauth_connect_timeout());
			my $request  = $self->_token_request($request->{code});
			my $response = $lwp_user_agent->request($request);
			$exception = "timeout" if !$response or !$response->decoded_content;
		} else {
			eval {
				local $SIG{ALRM} = sub {die "timeout"};
				alarm cfg_oauth_connect_timeout();
				my $lwp_user_agent = LWP::UserAgent->new;

lib/PEF/Front/Oauth.pm  view on Meta::CPAN

		};
	}

}

sub get_user_info {
	my ($self) = @_;
	my $info;
	$self->{session}->store;
	my $exception;
	if ($coro_ae_lwp && $Coro::main != $Coro::current) {
		my $lwp_user_agent = AnyEvent::HTTP::LWP::UserAgent->new;
		$lwp_user_agent->timeout(cfg_oauth_connect_timeout());
		my $response = $lwp_user_agent->request($self->_get_user_info_request);
		if ($response && $response->decoded_content) {
			$info = eval {decode_json $response->decoded_content};
			$exception = $@;
		} else {
			$exception = "timeout";
		}
	} else {

lib/PEF/Front/Request.pm  view on Meta::CPAN

use JSON;
use Carp ();
use utf8;
use Encode;
use PEF::Front::Headers;
use PEF::Front::File;
use PEF::Front::Config;
use XML::Simple;
use URI;

my $coro_ae = $INC{'Coro/AnyEvent.pm'} ? 1 : 0;

sub new {
	my ($class, $env) = @_;
	Carp::croak(q{$env is required})
		unless defined $env && ref($env) eq 'HASH';
	my $self = bless {env => $env}, $class;
	$self->_parse;
	$self;
}
sub env               {$_[0]->{env}}



( run in 0.499 second using v1.01-cache-2.11-cpan-3cd7ad12f66 )