summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Friesel <derf@finalrewind.org>2019-12-17 20:09:02 +0100
committerDaniel Friesel <derf@finalrewind.org>2019-12-17 20:09:02 +0100
commit934a9ac21a2747db10840a94aa3ed095063021d2 (patch)
tree04ec3e390d8761950f551a6859d10d15991b503d
parentae21896982b5f53c0a011740f58a97be40bf0b30 (diff)
api/import: More helpful errors, fix "lax" support
-rwxr-xr-xlib/Travelynx.pm25
-rwxr-xr-xlib/Travelynx/Controller/Api.pm16
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' ) {