root/lang/perl/HTTP-Engine/branches/moose/examples/moose-pluslus.pl @ 10881

Revision 10881, 1.1 kB (checked in by hidek, 6 years ago)

modified moose-plusplus.pl

Line 
1use strict;
2use warnings;
3
4use lib 'lib';
5
6use HTTP::Engine;
7use HTTP::Engine::Interface::ServerSimple;
8use YAML;
9
10HTTP::Engine::Interface::ServerSimple->new(
11    port => 9999 ,
12    handler   => \&handle_request,
13)->run;
14
15my %karma = {};
16
17sub handle_request {
18    my $c = shift;
19
20    my $method = $c->req->method;
21    my ( $name, $karma, $pm ) = split '/', $c->req->path;
22
23    if ( $method eq 'POST' ) {
24        $karma ||= '';
25        $pm    ||= '';
26        if (   $name
27            && $karma eq 'karma'
28            && ( $pm eq 'plus' || $pm eq 'minus' ) )
29        {
30            $karma{$name} ||= { plus => 0, minus => 0 };
31            $karma{$name}->{$pm}++;
32        }
33        else {
34            $c->res->body('403');
35            $c->res->status('403');
36            return;
37        }
38    }
39    elsif ( $method eq 'GET' || $method eq 'HEAD' ) {
40        unless ( $name && $karma{$name} ) {
41            $c->res->body('404');
42            $c->res->status('404');
43            return;
44        }
45    }
46    else {
47        $c->res->body('400');
48        $c->res->status('400');
49        return;
50    }
51    $c->res->body( Dump( $karma{$name} ) );
52}
Note: See TracBrowser for help on using the browser.