diff options
author | Daniel Friesel <derf@finalrewind.org> | 2023-02-02 21:42:03 +0100 |
---|---|---|
committer | Daniel Friesel <derf@finalrewind.org> | 2023-02-02 21:42:03 +0100 |
commit | d5f28814ba5401d964a361b9c071f5319ff76f7b (patch) | |
tree | 23d36f9889c25d97280ec2d140bb1ebf938e8dac /lib/Travel/Status/DE/HAFAS.pm | |
parent | 6026830d29131c8d563da66e73aca37a240b4a00 (diff) |
HAFAS: Add similar_stops_p function
Diffstat (limited to 'lib/Travel/Status/DE/HAFAS.pm')
-rw-r--r-- | lib/Travel/Status/DE/HAFAS.pm | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/lib/Travel/Status/DE/HAFAS.pm b/lib/Travel/Status/DE/HAFAS.pm index 3fa8e39..4339da8 100644 --- a/lib/Travel/Status/DE/HAFAS.pm +++ b/lib/Travel/Status/DE/HAFAS.pm @@ -659,6 +659,25 @@ sub similar_stops { return; } +sub similar_stops_p { + my ( $self, %opt ) = @_; + + my $service = $self->{active_service}; + + if ( $service and exists $hafas_instance{$service}{stopfinder} ) { + $opt{user_agent} //= $self->{ua}; + return Travel::Status::DE::HAFAS::StopFinder->new_p( + url => $hafas_instance{$service}{stopfinder}, + input => $self->{station}, + ua => $opt{user_agent}, + developer_mode => $self->{developer_mode}, + promise => $opt{promise}, + ); + } + return $opt{promise} + ->reject("stopfinder not available for backend '$service'"); +} + sub station { my ($self) = @_; @@ -877,7 +896,7 @@ Only relevant in journey mode. =back -=item my $status = Travel::Status::DE::HAFAS->new_p(I<%opt>) +=item my $status_p = Travel::Status::DE::HAFAS->new_p(I<%opt>) Return a promise that resolves into a Travel::Status::DE::HAFAS instance ($status) on success and rejects with an error message ($status->errstr) on |