diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/Travel/Routing/DE/HAFAS.pm | 12 | ||||
-rw-r--r-- | lib/Travel/Routing/DE/HAFAS/Connection.pm | 10 | ||||
-rw-r--r-- | lib/Travel/Routing/DE/HAFAS/Connection/Section.pm | 10 |
3 files changed, 23 insertions, 9 deletions
diff --git a/lib/Travel/Routing/DE/HAFAS.pm b/lib/Travel/Routing/DE/HAFAS.pm index 1ced8e8..f607908 100644 --- a/lib/Travel/Routing/DE/HAFAS.pm +++ b/lib/Travel/Routing/DE/HAFAS.pm @@ -536,8 +536,17 @@ sub check_mgate { sub parse_trips { my ($self) = @_; + my $common = $self->{raw_json}{svcResL}[0]{res}{common}; + my @locL = map { Travel::Status::DE::HAFAS::Location->new( loc => $_ ) } - @{ $self->{raw_json}{svcResL}[0]{res}{common}{locL} // [] }; + @{ $common->{locL} // [] }; + + my @prodL = map { + Travel::Status::DE::HAFAS::Product->new( + common => $common, + product => $_ + ) + } @{ $common->{prodL} // [] }; my @conL = @{ $self->{raw_json}{svcResL}[0]{res}{outConL} // [] }; for my $con (@conL) { @@ -546,6 +555,7 @@ sub parse_trips { Travel::Routing::DE::HAFAS::Connection->new( common => $self->{raw_json}{svcResL}[0]{res}{common}, locL => \@locL, + prodL => \@prodL, connection => $con, hafas => $self, ) diff --git a/lib/Travel/Routing/DE/HAFAS/Connection.pm b/lib/Travel/Routing/DE/HAFAS/Connection.pm index 51c3a03..95c54f4 100644 --- a/lib/Travel/Routing/DE/HAFAS/Connection.pm +++ b/lib/Travel/Routing/DE/HAFAS/Connection.pm @@ -24,7 +24,8 @@ sub new { my $hafas = $opt{hafas}; my $connection = $opt{connection}; - my $locs = $opt{locL}; + my $locL = $opt{locL}; + my $prodL = $opt{prodL}; # himL may only be present in departure monitor mode my @remL = @{ $opt{common}{remL} // [] }; @@ -83,7 +84,8 @@ sub new { Travel::Routing::DE::HAFAS::Connection::Section->new( common => $opt{common}, date => $date, - locL => $locs, + locL => $locL, + prodL => $prodL, sec => $sec, hafas => $hafas, ) @@ -126,8 +128,8 @@ sub new { // $connection->{dep}{dPlatfS}, arr_platform => $connection->{arr}{aPlatfR} // $connection->{arr}{aPlatfS}, - dep_loc => $locs->[ $connection->{dep}{locX} ], - arr_loc => $locs->[ $connection->{arr}{locX} ], + dep_loc => $locL->[ $connection->{dep}{locX} ], + arr_loc => $locL->[ $connection->{arr}{locX} ], load => $tco, messages => \@messages, sections => \@sections, diff --git a/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm b/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm index ed61b99..ed6cb0b 100644 --- a/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm +++ b/lib/Travel/Routing/DE/HAFAS/Connection/Section.pm @@ -27,7 +27,8 @@ sub new { my $hafas = $opt{hafas}; my $sec = $opt{sec}; my $date = $opt{date}; - my $locs = $opt{locL}; + my $locL = $opt{locL}; + my $prodL = $opt{prodL}; # himL may only be present in departure monitor mode my @remL = @{ $opt{common}{remL} // [] }; @@ -86,8 +87,8 @@ sub new { rt_arr => $rt_arr, dep => $rt_dep // $sched_dep, arr => $rt_arr // $sched_arr, - dep_loc => $locs->[ $sec->{dep}{locX} ], - arr_loc => $locs->[ $sec->{arr}{locX} ], + dep_loc => $locL->[ $sec->{dep}{locX} ], + arr_loc => $locL->[ $sec->{arr}{locX} ], dep_platform => $sec->{dep}{dplatfR} // $sec->{dep}{dPlatfS}, arr_platform => $sec->{arr}{aplatfR} // $sec->{arr}{aPlatfS}, dep_cancelled => $sec->{dep}{dCncl}, @@ -109,7 +110,8 @@ sub new { $ref->{journey} = Travel::Status::DE::HAFAS::Journey->new( common => $opt{common}, date => $date, - locL => $locs, + locL => $locL, + prodL => $prodL, journey => $sec->{jny}, hafas => $hafas, ); |