diff options
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/Travelynx/Model/InTransit.pm | 38 | 
1 files changed, 38 insertions, 0 deletions
| diff --git a/lib/Travelynx/Model/InTransit.pm b/lib/Travelynx/Model/InTransit.pm index 1028d59..e8495b8 100644 --- a/lib/Travelynx/Model/InTransit.pm +++ b/lib/Travelynx/Model/InTransit.pm @@ -809,6 +809,24 @@ sub update_departure_dbris {  	my $stop    = $opt{stop};  	my $json    = JSON->new; +	my $res_h = $db->select( 'in_transit', ['data'], { user_id => $uid } ) +	  ->expand->hash; +	my $data = $res_h ? $res_h->{data} : {}; + +	$data->{him_msg} = []; +	for my $msg ( $journey->messages ) { +		if ( not $msg->{ueberschrift} ) { +			push( +				@{ $data->{him_msg} }, +				{ +					header => q{}, +					prio   => $msg->{prioritaet}, +					lead   => $msg->{text} +				} +			); +		} +	} +  	# selecting on user_id and train_no avoids a race condition if a user checks  	# into a new train while we are fetching data for their previous journey. In  	# this case, the new train would receive data from the previous journey. @@ -816,6 +834,7 @@ sub update_departure_dbris {  		'in_transit',  		{  			real_departure => $stop->{rt_dep}, +			data           => $json->encode($data),  		},  		{  			user_id             => $uid, @@ -905,6 +924,24 @@ sub update_arrival_dbris {  	my $stop    = $opt{stop};  	my $json    = JSON->new; +	my $res_h = $db->select( 'in_transit', ['data'], { user_id => $uid } ) +	  ->expand->hash; +	my $data = $res_h ? $res_h->{data} : {}; + +	$data->{him_msg} = []; +	for my $msg ( $journey->messages ) { +		if ( not $msg->{ueberschrift} ) { +			push( +				@{ $data->{him_msg} }, +				{ +					header => q{}, +					prio   => $msg->{prioritaet}, +					lead   => $msg->{text} +				} +			); +		} +	} +  	my @route;  	for my $j_stop ( $journey->route ) {  		push( @@ -939,6 +976,7 @@ sub update_arrival_dbris {  		{  			real_arrival => $stop->{rt_arr},  			route        => $json->encode( [@route] ), +			data         => $json->encode($data),  		},  		{  			user_id             => $uid, | 
