APNS-Agent
view release on metacpan or search on metacpan
"Test::Spellunker" : "v0.2.7"
}
},
"runtime" : {
"requires" : {
"AnyEvent::APNS" : "0",
"Cache::LRU" : "0",
"Class::Accessor::Lite::Lazy" : "0.03",
"Encode" : "0",
"Hash::Rename" : "0",
"JSON::XS" : "0",
"Log::Minimal" : "0",
"Plack::Loader" : "0",
"Plack::Request" : "0",
"Router::Boom::Method" : "0",
"feature" : "0",
"perl" : "5.010"
}
},
"test" : {
"requires" : {
provides:
APNS::Agent:
file: lib/APNS/Agent.pm
version: 0.06
requires:
AnyEvent::APNS: 0
Cache::LRU: 0
Class::Accessor::Lite::Lazy: 0.03
Encode: 0
Hash::Rename: 0
JSON::XS: 0
Log::Minimal: 0
Plack::Loader: 0
Plack::Request: 0
Router::Boom::Method: 0
feature: 0
perl: 5.010
resources:
bugtracker: https://github.com/Songmu/p5-APNS-Agent/issues
homepage: https://github.com/Songmu/p5-APNS-Agent
repository: git://github.com/Songmu/p5-APNS-Agent.git
requires 'AnyEvent::APNS';
requires 'Cache::LRU';
requires 'Class::Accessor::Lite::Lazy', '0.03';
requires 'Encode';
requires 'Hash::Rename';
requires 'JSON::XS';
requires 'Log::Minimal';
requires 'Plack::Loader';
requires 'Plack::Request';
requires 'Router::Boom::Method';
requires 'feature';
requires 'perl', '5.010_000';
on configure => sub {
requires 'CPAN::Meta';
requires 'CPAN::Meta::Prereqs';
lib/APNS/Agent.pm view on Meta::CPAN
package APNS::Agent;
use 5.010;
use strict;
use warnings;
our $VERSION = "0.06";
use AnyEvent::APNS;
use Cache::LRU;
use Encode qw/decode_utf8/;
use JSON::XS;
use Log::Minimal;
use Plack::Request;
use Router::Boom::Method;
use Class::Accessor::Lite::Lazy 0.03 (
new => 1,
ro => [qw/
certificate
private_key
sandbox
lib/APNS/Agent.pm view on Meta::CPAN
};
}
sub _do_main {
my ($self, $req) = @_;
my $token = $req->param('token') or return [400, [], ['Bad Request']];
my $payload;
if (my $payload_json = $req->param('payload') ) {
state $json_driver = JSON::XS->new->utf8;
local $@;
$payload = eval { $json_driver->decode($payload_json) };
return [400, [], ['BAD REQUEST']] if $@;
}
elsif (my $alert = $req->param('alert')) {
$payload = +{
alert => decode_utf8($alert),
};
}
return [400, [], ['BAD REQUEST']] unless $payload;
t/01_basic.t view on Meta::CPAN
use warnings;
use utf8;
use Test::More 0.98;
use Test::TCP;
use Plack::Test;
use HTTP::Request::Common;
use AnyEvent;
use AnyEvent::Socket;
use JSON::XS;
use APNS::Agent;
my $cv = AnyEvent->condvar;
my $apns_port = empty_port;
tcp_server undef, $apns_port, sub {
my $fh = shift or die $!;
my $handle = AnyEvent::Handle->new(fh => $fh);
$handle->push_read( chunk => 1, sub {
( run in 0.273 second using v1.01-cache-2.11-cpan-4d50c553e7e )