8f4d6cef4ed5fa98600f159195477ac0ccb5af92
[pr0n] / perl / Sesse / pr0n / NewEvent.pm
1 package Sesse::pr0n::NewEvent;
2 use strict;
3 use warnings;
4
5 use Sesse::pr0n::Common qw(error dberror);
6
7 sub handler {
8         my $r = shift;
9         my $dbh = Sesse::pr0n::Common::get_dbh();
10         my $user = Sesse::pr0n::Common::check_access($r);
11         return Sesse::pr0n::Common::generate_401($r) if (!defined($user));
12
13         my $res = Plack::Response->new(200);
14         my $io = IO::String->new;
15         Sesse::pr0n::Common::header($r, $io, "Legger til ny hendelse");
16         
17         my $id = $r->param('id');
18         my $date = Encode::decode_utf8($r->param('date'));
19         my $desc = Encode::decode_utf8($r->param('desc'));
20
21         my @errors = Sesse::pr0n::Common::add_new_event($r, $res, $dbh, $id, $date, $desc);
22         
23         if (scalar @errors > 0) {
24                 for my $err (@errors) {
25                         $io->print("    <p>Feil: $err</p>\n");
26                 }
27                 $io->print("    <p>Rett opp i feilene over før du går videre.</p>\n");
28         } else {
29                 $io->print("    <p>Hendelsen '$id' lagt til.</p>");
30         }
31         
32         Sesse::pr0n::Common::footer($r, $io);
33
34         $io->setpos(0);
35         $res->body($io);
36         return $res;
37 }
38
39 1;
40
41