From fd9bb806d8863678920e4252c1411b17a19520f9 Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Mon, 20 Jan 2025 19:00:19 +0100 Subject: dbris: Filter out unsupported MOTs rather than passing them to the backend --- bin/dbris | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/bin/dbris b/bin/dbris index 6cc6ee9..034ad01 100755 --- a/bin/dbris +++ b/bin/dbris @@ -24,6 +24,8 @@ my $show_full_route; my $cache; my @output; +my %known_mot = map { $_ => 1 } + (qw(ICE EC_IC IR REGIONAL SBAHN BUS SCHIFF UBAHN TRAM ANRUFPFLICHTIG)); binmode( STDOUT, ':encoding(utf-8)' ); for my $arg (@ARGV) { @@ -158,7 +160,22 @@ if ( $date or $time ) { } if ($mots) { - $opt{modes_of_transit} = [ split( qr{, *}, $mots ) ]; + + # Passing unknown MOTs to the backend results in HTTP 422 Unprocessable Entity + my @mots = split( qr{, *}, $mots ); + my $found_unknown; + for my $mot (@mots) { + if ( not $known_mot{$mot} ) { + $found_unknown = 1; + say STDERR +"-m / --modes-of-transit: skipping unknown mode of transit '$mot'"; + } + } + if ($found_unknown) { + say STDERR 'supported modes of transit are: ' + . join( q{, }, sort keys %known_mot ); + } + $opt{modes_of_transit} = [ grep { $known_mot{$_} } @mots ]; } if ($discounts) { -- cgit v1.2.3