From 3233b996b3c31976e8aee42dc867e7ad92dd61dc Mon Sep 17 00:00:00 2001 From: Birte Kristina Friesel Date: Thu, 18 Sep 2025 20:52:32 +0200 Subject: Stations->get_by_names: backend_id is mandatory these days --- lib/Travelynx/Model/Journeys.pm | 15 ++++++++++----- lib/Travelynx/Model/Stations.pm | 19 ++++++++++++------- 2 files changed, 22 insertions(+), 12 deletions(-) (limited to 'lib/Travelynx/Model') diff --git a/lib/Travelynx/Model/Journeys.pm b/lib/Travelynx/Model/Journeys.pm index b1af966..46ad1c0 100755 --- a/lib/Travelynx/Model/Journeys.pm +++ b/lib/Travelynx/Model/Journeys.pm @@ -445,8 +445,12 @@ sub update { # Otherwise, fetch stop IDs so that polylines remain usable if ( @new_route != @{ $opt{route} } ) { - my %stop_id = map { $_->{name} => $_->{eva} } - $self->{stations}->get_by_names( @{ $opt{route} } ); + my %stop_id + = map { $_->{name} => $_->{eva} } + $self->{stations}->get_by_names( + backend_id => $journey->{backend_id}, + names => [ $opt{route} ] + ); @new_route = map { [ $_, $stop_id{$_}, {} ] } @{ $opt{route} }; } @@ -1268,9 +1272,10 @@ sub sanity_check { . ' Stimmt das wirklich?'; } if ( $journey->{edited} & 0x0010 and not $lax ) { - my @unknown_stations - = $self->{stations} - ->grep_unknown( map { $_->[0] } @{ $journey->{route} } ); + my @unknown_stations = $self->{stations}->grep_unknown( + backend_id => $journey->{backend_id}, + names => [ map { $_->[0] } @{ $journey->{route} } ] + ); if (@unknown_stations) { return 'Unbekannte Station(en): ' . join( ', ', @unknown_stations ); } diff --git a/lib/Travelynx/Model/Stations.pm b/lib/Travelynx/Model/Stations.pm index c6d9730..5316118 100644 --- a/lib/Travelynx/Model/Stations.pm +++ b/lib/Travelynx/Model/Stations.pm @@ -461,11 +461,16 @@ sub get_by_name { # Slow sub get_by_names { - my ( $self, @names ) = @_; + my ( $self, %opt ) = @_; - my @ret - = $self->{pg}->db->select( 'stations', '*', { name => { '=', \@names } } ) - ->hashes->each; + my @ret = $self->{pg}->db->select( + 'stations', + '*', + { + name => { '=', $opt{names} }, + source => $opt{backend_id} + } + )->hashes->each; return @ret; } @@ -506,10 +511,10 @@ sub search { # Slow sub grep_unknown { - my ( $self, @stations ) = @_; + my ( $self, %opt ) = @_; - my %station = map { $_->{name} => 1 } $self->get_by_names(@stations); - my @unknown_stations = grep { not $station{$_} } @stations; + my %station = map { $_->{name} => 1 } $self->get_by_names(%opt); + my @unknown_stations = grep { not $station{$_} } @{ $opt{names} }; return @unknown_stations; } -- cgit v1.2.3