From be21dec79365be950f9bc8cb78baa826e3e0f704 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Sun, 19 Oct 2014 21:04:08 +0200 Subject: json: show list of candidates in case of an error --- index.pl | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/index.pl b/index.pl index 0ad9447..fb3b3f0 100644 --- a/index.pl +++ b/index.pl @@ -79,6 +79,28 @@ sub handle_request { my @departures; my @results = get_results_for( $backend, $station ); + if ( not @results and $template eq 'json' ) { + if ( $backend eq 'iris' ) { + my @candidates = map { { code => $_->[0], name => $_->[1] } } + Travel::Status::DE::IRIS::Stations::get_station($station); + $self->render( + json => { + version => $VERSION, + error => 'ambiguous station code/name', + candidates => \@candidates, + } + ); + return; + } + $self->render( + json => { + version => $VERSION, + error => 'unknown station code/name', + } + ); + return; + } + if ( not @results ) { if ( $backend eq 'iris' ) { my @candidates = map { [ "$_->[1] ($_->[0])", $_->[0] ] } @@ -89,6 +111,7 @@ sub handle_request { stationlist => \@candidates, hide_opts => 0 ); + return; } } $self->render( -- cgit v1.2.3