Unverified Commit 6364751e authored by Birte Kristina Friesel's avatar Birte Kristina Friesel
Browse files

HAFAS: Use locationSearch rather than similar_stops_p

locationSearch uses mgate.exe, just like the regular departure board.
similar_stops_p relies on ajax-getstop.exe which may become unavailable sooner
rather than later.
parent 0b1de413
Loading
Loading
Loading
Loading
+7 −10
Original line number Diff line number Diff line
@@ -1105,23 +1105,20 @@ sub station {
			}
			elsif ( $use_hafas and $status and $status->errcode eq 'LOCATION' )
			{
				$status->similar_stops_p->then(
				$self->hafas->search_location_p( query => $station )->then(
					sub {
						my @suggestions = @_;
						my ($hafas2) = @_;
						my @suggestions = $hafas2->results;
						if ( @suggestions == 1 ) {
							$self->redirect_to(
								'/s/' . $suggestions[0]->{id} . '?hafas=1' );
								'/s/' . $suggestions[0]->eva . '?hafas=1' );
						}
						else {
							$self->render(
								'disambiguation',
								suggestions => [
									map {
										{
											name => $_->{name},
											eva  => $_->{id}
										}
									} @suggestions
									map { { name => $_->name, eva => $_->eva } }
									  @suggestions
								],
								status => 300,
							);
@@ -1133,7 +1130,7 @@ sub station {
						$self->render(
							'exception',
							exception =>
							  "StopFinder threw '$err2' when handling '$err'",
"locationSearch threw '$err2' when handling '$err'",
							status => 502
						);
					}
+11 −0
Original line number Diff line number Diff line
@@ -98,6 +98,17 @@ sub get_departures_p {
	);
}

sub search_location_p {
	my ( $self, %opt ) = @_;

	return Travel::Status::DE::HAFAS->new_p(
		locationSearch => $opt{query},
		cache          => $self->{realtime_cache},
		promise        => 'Mojo::Promise',
		user_agent     => $self->{user_agent}->request_timeout(5),
	);
}

sub get_journey_p {
	my ( $self, %opt ) = @_;