diff options
author | Daniel Friesel <derf@finalrewind.org> | 2011-08-12 01:21:40 +0200 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2011-08-12 01:21:40 +0200 |
commit | 4c0dc86a3fd165ae2fa2c48286056c9ea13a2352 (patch) | |
tree | 1b67e45b89bd1ad110fb805111c9f3297d6c8831 /cgi | |
parent | 731a744d34b0ce1f670524a1b08d8d71c44288c7 (diff) |
cgi: Error handling
Diffstat (limited to 'cgi')
-rw-r--r-- | cgi/index.pl | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/cgi/index.pl b/cgi/index.pl index 3051f94..96dd488 100644 --- a/cgi/index.pl +++ b/cgi/index.pl @@ -9,20 +9,20 @@ sub get_results_for { my ($station) = @_; my $cache = Cache::File->new( - cache_root => '/tmp/db-fake', + cache_root => '/tmp/db-fake', default_expires => '900 sec' ); my $results = $cache->thaw($station); - if (not $results) { - my $status = Travel::Status::DE::DeutscheBahn->new( station => $station - ); - $results = [$status->results]; - $cache->freeze($station, $results); + if ( not $results ) { + my $status + = Travel::Status::DE::DeutscheBahn->new( station => $station ); + $results = [ $status->results ]; + $cache->freeze( $station, $results ); } - return @{ $results }; + return @{$results}; } get '/' => sub { @@ -43,8 +43,14 @@ get '/multi/:station' => sub { filename => dist_file( 'db-fakedisplay', 'multi-lcd.html' ), loop_context_vars => 1, ); + my @results = get_results_for($station); + + if ( not @results ) { + $self->render( 'index', error => "Got no results for '$station'", ); + return; + } - for my $result ( get_results_for($station) ) { + for my $result (@results) { push( @params, { @@ -68,7 +74,7 @@ __DATA__ @@ index.html.ep % title 'DB Fakedisplay'; -<% if (my $error = flash 'error' ) { %> +<% if (my $error = stash 'error') { %> Error: <%= $error %><br/> <% } %> <%= form_for index => begin %> |