diff options
author | Birte Kristina Friesel <derf@finalrewind.org> | 2023-11-11 09:00:59 +0100 |
---|---|---|
committer | Birte Kristina Friesel <derf@finalrewind.org> | 2023-11-11 09:00:59 +0100 |
commit | eaf4de9b5bb6003007cff9c150614fd5fda5376d (patch) | |
tree | f5a2a6448ea112ac10b5a83c2051795705750549 /lib/Travel/Status/DE/HAFAS/Message.pm | |
parent | 3d15025266d1fb049c02ff1b726efe350ec6fb39 (diff) |
Message: parse JSON in constructor
Diffstat (limited to 'lib/Travel/Status/DE/HAFAS/Message.pm')
-rw-r--r-- | lib/Travel/Status/DE/HAFAS/Message.pm | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/lib/Travel/Status/DE/HAFAS/Message.pm b/lib/Travel/Status/DE/HAFAS/Message.pm index df49c5a..a9802eb 100644 --- a/lib/Travel/Status/DE/HAFAS/Message.pm +++ b/lib/Travel/Status/DE/HAFAS/Message.pm @@ -14,7 +14,31 @@ Travel::Status::DE::HAFAS::Message->mk_ro_accessors( sub new { my ( $obj, %conf ) = @_; - my $ref = \%conf; + my $json = $conf{json}; + my $is_him = $conf{is_him}; + + my $short = $json->{txtS}; + my $text = $json->{txtN}; + my $type = $json->{type}; + my $code = $json->{code}; + my $prio = $json->{prio}; + + if ($is_him) { + $short = $json->{head}; + $text = $json->{text}; + $code = $json->{hid}; + } + + my $ref = { + short => $short, + text => $text, + type => $type, + code => $code, + prio => $prio, + is_him => $is_him, + ref_count => $conf{ref_count}, + }; + bless( $ref, $obj ); return $ref; |