X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FPlack%2FApp%2FGruntmaster.pm;h=17d198d74b976fcb95397f5e34214999365756bf;hb=cf4801bd15e923b59c8f3760c17606b8f0e3b552;hp=3cb38097fb8052b76602c7bca35e62a4b58dbbf1;hpb=1bb102efb1444ab35e5cd8d2493d5e15ab00bc3f;p=gruntmaster-page.git diff --git a/lib/Plack/App/Gruntmaster.pm b/lib/Plack/App/Gruntmaster.pm index 3cb3809..17d198d 100644 --- a/lib/Plack/App/Gruntmaster.pm +++ b/lib/Plack/App/Gruntmaster.pm @@ -125,24 +125,21 @@ sub dispatch_request{ response_filter { return shift } }, - sub () { + sub (?:format~) { + my $format = lc ($_{format} // ''); response_filter { my ($r) = @_; return $r if ref $r ne 'Plack::App::Gruntmaster::Response'; - return [200, ['Content-Type' => 'application/json', 'X-Forever' => 1], [encode 'UTF-8', encode_json $r->{params}]] if $env->{HTTP_ACCEPT} =~ m,^\s*application/json\s*$,g; + return [200, ['Content-Type' => 'application/json'], [encode_json $r->{params}]] if $format eq 'json'; my $ret = render $r->{template}, 'en', title => $r->{title}, %{$r->{params}}; [200, ['Content-Type' => 'text/html'], [encode 'UTF-8', $ret]] }, }, - sub (/st/) { - response st => 'Standings', { st => [db->standings] } - }, - sub (/st/:contest) { response st => 'Standings', { - st => [ db->standings($_{contest}) ], - problems => [map { $_->problem } contest->contest_problems] + st => [ contest->standings ], + problems => [map { $_->problem } contest->contest_problems], } },