summaryrefslogtreecommitdiff
path: root/lib/Travel/Routing/DE
diff options
context:
space:
mode:
Diffstat (limited to 'lib/Travel/Routing/DE')
-rw-r--r--lib/Travel/Routing/DE/HAFAS.pm12
-rw-r--r--lib/Travel/Routing/DE/HAFAS/Connection.pm10
-rw-r--r--lib/Travel/Routing/DE/HAFAS/Connection/Section.pm10
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,
);