X-Git-Url: http://git.ieval.ro/?a=blobdiff_plain;f=lib%2FPlack%2FApp%2FGruntmaster.pm;h=0666fad804a3329bf41ddade92c129b954c6a7ab;hb=c83dca87863f8e36ad2279f4c8c78cbbdc6704ea;hp=814c70ff273ac8108cf31fad3eb736323cd6d008;hpb=8a4acacac3663eaa415a5182e9502bfcc0d48e08;p=plack-app-gruntmaster.git diff --git a/lib/Plack/App/Gruntmaster.pm b/lib/Plack/App/Gruntmaster.pm index 814c70f..0666fad 100644 --- a/lib/Plack/App/Gruntmaster.pm +++ b/lib/Plack/App/Gruntmaster.pm @@ -34,6 +34,7 @@ use constant CONTENT_TYPES => +{ pas => 'text/x-pascal', pl => 'text/x-perl', py => 'text/x-python', + rb => 'application/x-ruby', l => 'text/plain', }; @@ -48,6 +49,7 @@ use constant FORMAT_EXTENSION => { PASCAL => 'pas', PERL => 'pl', PYTHON => 'py', + RUBY => 'rb', SBCL => 'l', }; @@ -107,18 +109,6 @@ sub dispatch_request{ [200, \@headers, [job->source]] }, - sub (?:contest=) { - return NOT_FOUND if !contest; - forbid contest->is_pending; - response_filter { return shift } - }, - - sub (?:problem=) { - return NOT_FOUND if !problem; - forbid problem->private; - response_filter { return shift } - }, - sub (?:format~) { my $format = lc ($_{format} // ''); response_filter { @@ -159,12 +149,13 @@ sub dispatch_request{ sub (/us/) { response us => 'Users', {us => db->user_list} }, sub (/ct/ + ?:owner~) { response ct => 'Contests', db->contest_list(%_) }, - sub (/log/ + ?:contest~&:owner~&:page~&:problem~&:private~) { + sub (/log/ + ?:contest~&:owner~&:page~&:problem~&:private~&:result~) { forbid $_{private}; response log => 'Job list', {%{db->job_list(%_)}, maybe contest => $_{contest},} }, sub (/pb/ + ?:owner~&:contest~&:private~) { forbid $_{private}; + forbid contest && contest->is_pending; response pb => 'Problems', db->problem_list(%_) },