From 934a9ac21a2747db10840a94aa3ed095063021d2 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 17 Dec 2019 20:09:02 +0100 Subject: api/import: More helpful errors, fix "lax" support --- lib/Travelynx.pm | 25 +++++++++++++++---------- lib/Travelynx/Controller/Api.pm | 16 ++++++++++++++++ 2 files changed, 31 insertions(+), 10 deletions(-) diff --git a/lib/Travelynx.pm b/lib/Travelynx.pm index 5c54322..d91fa7a 100755 --- a/lib/Travelynx.pm +++ b/lib/Travelynx.pm @@ -350,20 +350,25 @@ sub startup { my @unknown_stations; for my $station ( @{ $opt{route} } ) { my $station_info = get_station($station); - if ( not $station_info ) { + if ($station_info) { + push( @route, [ $station_info->[1], {}, undef ] ); + } + else { + push( @route, [ $station, {}, undef ] ); push( @unknown_stations, $station ); } - push( @route, [ $station_info->[1], {}, undef ] ); } - if ( @unknown_stations == 1 ) { - return ( undef, - "Unbekannter Unterwegshalt: $unknown_stations[0]" ); - } - elsif (@unknown_stations) { - return ( undef, - 'Unbekannte Unterwegshalte: ' - . join( ', ', @unknown_stations ) ); + if ( not $opt{lax} ) { + if ( @unknown_stations == 1 ) { + return ( undef, + "Unbekannter Unterwegshalt: $unknown_stations[0]" ); + } + elsif (@unknown_stations) { + return ( undef, + 'Unbekannte Unterwegshalte: ' + . join( ', ', @unknown_stations ) ); + } } } diff --git a/lib/Travelynx/Controller/Api.pm b/lib/Travelynx/Controller/Api.pm index 54908fc..834317c 100755 --- a/lib/Travelynx/Controller/Api.pm +++ b/lib/Travelynx/Controller/Api.pm @@ -389,6 +389,21 @@ sub import_v1 { my %opt; eval { + + if ( not $payload->{fromStation}{name} + or not $payload->{toStation}{name} ) + { + die("Missing fromStation/toStation name\n"); + } + if ( not $payload->{train}{type} or not $payload->{train}{no} ) { + die("Missing train data\n"); + } + if ( not $payload->{fromStation}{scheduledTime} + or not $payload->{toStation}{scheduledTime} ) + { + die("Missing fromStation/toStation scheduledTime\n"); + } + %opt = ( uid => $uid, train_type => sanitize( q{}, $payload->{train}{type} ), @@ -412,6 +427,7 @@ sub import_v1 { // $payload->{toStation}{scheduledTime} ), comment => sanitize( q{}, $payload->{comment} ), + lax => $payload->{lax} ? 1 : 0, ); if ( $payload->{route} and ref( $payload->{route} ) eq 'ARRAY' ) { -- cgit v1.2.3