diff options
| author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-06-09 16:57:36 +0200 | 
|---|---|---|
| committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-06-09 16:57:36 +0200 | 
| commit | f1da50f9f18f0a2a5fd202daff4b6f0b517f35e0 (patch) | |
| tree | 39b4f81b81dbfe49555f923c0bf72d89d5629b29 /lib/Travelynx/Command | |
| parent | 9b6a3171987d515e79a7935043c7f8b9f21e84c5 (diff) | |
Fix worker for MOTIS checkins2.13.5
Apparently, even after a check-in has been performed, subsequent worker runs
may encounter stop IDs that were not added to stations_external_ids by the
check-in process. So we need to add_or_update all stops we ecounter.
Diffstat (limited to 'lib/Travelynx/Command')
| -rw-r--r-- | lib/Travelynx/Command/work.pm | 14 | 
1 files changed, 8 insertions, 6 deletions
| diff --git a/lib/Travelynx/Command/work.pm b/lib/Travelynx/Command/work.pm index b4b7656..2b01cb2 100644 --- a/lib/Travelynx/Command/work.pm +++ b/lib/Travelynx/Command/work.pm @@ -197,13 +197,15 @@ sub run {  						for my $stopover ( $journey->stopovers ) {  							if ( not defined $stopover->stop->{eva} ) { -								my $stop -								  = $self->app->stations->get_by_external_id( -									external_id => $stopover->stop->id, -									motis       => $entry->{backend_name}, -								  ); -								$stopover->stop->{eva} = $stop->{eva}; +								# Looks like MOTIS / transitous station IDs can change after the fact. +								# So let's be safe rather than sorry, even if this causes way too many calls to the slow path +								# (Stations::get_by_external_id uses string lookups). +								# This function call implicitly sets $stopover->stop->{eva} for MOTIS backends. +								$self->app->stations->add_or_update( +									stop  => $stopover->stop, +									motis => $entry->{backend_name}, +								);  							}  						} | 
