From db263b06a197ea6b949d0fbbc06c4012921a7842 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Tue, 11 Oct 2022 22:32:41 +0200 Subject: new_p: support journey argument --- lib/Travel/Status/DE/HAFAS.pm | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/lib/Travel/Status/DE/HAFAS.pm b/lib/Travel/Status/DE/HAFAS.pm index 1da0ee8..bdcaff8 100644 --- a/lib/Travel/Status/DE/HAFAS.pm +++ b/lib/Travel/Status/DE/HAFAS.pm @@ -188,7 +188,7 @@ sub new { } if ( not $conf{station} and not $conf{journey} ) { - confess('You need to specify a station'); + confess('station or journey must be specified'); } if ( not defined $service ) { @@ -363,8 +363,8 @@ sub new_p { my ( $obj, %conf ) = @_; my $promise = $conf{promise}->new; - if ( not $conf{station} ) { - return $promise->reject('station flag must be passed'); + if ( not $conf{station} and not $conf{journey} ) { + return $promise->reject('station or journey flag must be passed'); } my $self = $obj->new( %conf, async => 1 ); @@ -375,8 +375,18 @@ sub new_p { my ($content) = @_; $self->{raw_json} = $self->{json}->decode($content); $self->check_mgate; - $self->parse_board; - $promise->resolve($self); + if ( $conf{journey} ) { + $self->parse_journey; + } + else { + $self->parse_board; + } + if ( $self->errstr ) { + $promise->reject( $self->errstr ); + } + else { + $promise->resolve($self); + } return; } )->catch( -- cgit v1.2.3