#!/usr/bin/perl
use strict;
use warnings;
use Plack::Request;
use JSON qw(to_json);
my %ROUTING = (
'/' => \&serve_root,
'/form' => \&serve_form,
);
my @complete_list = ();
my $app = sub {
my $env = shift;
my $request = Plack::Request->new($env);
my $route = $ROUTING{$request->path_info};
if ($route) {
return $route->($env);
}
return [
'404',
[ 'Content-Type' => 'text/html' ],
[ '404 Not Found' ],
];
};
sub serve_root {
my $html = get_html();
return [
'200',
[ 'Content-Type' => 'text/html' ],
[ $html ],
];
}
sub serve_form {
my $env = shift;
my $request = Plack::Request->new($env);
my $data;
if ($request->param('name') || $request->param('surname') ||
$request->param('gender') || $request->param('phone') ) {
my $name = $request->param('name');
my $surname = $request->param('surname');
my $gender = $request->param('gender');
my $phone = $request->param('phone');
push @complete_list, join(' : ', $name,$surname,$gender,$phone);
$data = { txt => 'You entered following data:
'.
'
Name: ' . $name .
'
Surname: ' . $surname .
'
Gender: ' . $gender .
'
Telephone: ' . $phone };
} else {
$data = { txt => 'You did not enterd anything.' };
}
return [
'200',
[ 'Content-Type' => 'application/json' ],
[ to_json $data ],
];
}
sub get_html {
return q{
Name: | ||
Surname: | ||
Gender: | Male Female | |
Telephone: | ||