diff options
| author | Birte Kristina Friesel <derf@finalrewind.org> | 2025-05-17 11:25:35 +0200 | 
|---|---|---|
| committer | Birte Kristina Friesel <derf@finalrewind.org> | 2025-05-17 11:25:35 +0200 | 
| commit | ebb6b76a32d1bb4651ca757a5e5aa8ef7756e8c5 (patch) | |
| tree | eda0849f9d011ec259cdaf27c79f5b042bed353f /lib/Travelynx | |
| parent | d21e89035f7d5f684a7d11ec164118978fcedc2e (diff) | |
dbris: persist backend messages and show them in journey view2.11.27
Diffstat (limited to 'lib/Travelynx')
| -rw-r--r-- | lib/Travelynx/Model/InTransit.pm | 53 | 
1 files changed, 41 insertions, 12 deletions
| diff --git a/lib/Travelynx/Model/InTransit.pm b/lib/Travelynx/Model/InTransit.pm index 0795179..08b7fbb 100644 --- a/lib/Travelynx/Model/InTransit.pm +++ b/lib/Travelynx/Model/InTransit.pm @@ -101,6 +101,7 @@ sub add {  	my $checkin_station_id = $opt{departure_eva};  	my $route              = $opt{route};  	my $data               = $opt{data}; +	my $persistent_data;  	my $json = JSON->new; @@ -242,6 +243,13 @@ sub add {  						lead   => $msg->{text}  					}  				); +				push( +					@{ $persistent_data->{him_msg} }, +					{ +						prio => $msg->{prioritaet}, +						lead => $msg->{text} +					} +				);  			}  		}  		$db->insert( @@ -267,6 +275,7 @@ sub add {  						%{ $data // {} }  					}  				), +				user_data  => JSON->new->encode($persistent_data),  				backend_id => $backend_id,  			}  		); @@ -824,21 +833,30 @@ 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} : {}; +	my $res_h = $db->select( 'in_transit', [ 'data', 'user_data' ], +		{ user_id => $uid } )->expand->hash; +	my $ephemeral_data  = $res_h ? $res_h->{data}      : {}; +	my $persistent_data = $res_h ? $res_h->{user_data} : {}; -	$data->{him_msg} = []; +	$ephemeral_data->{him_msg}  = []; +	$persistent_data->{him_msg} = [];  	for my $msg ( $journey->messages ) {  		if ( not $msg->{ueberschrift} ) {  			push( -				@{ $data->{him_msg} }, +				@{ $ephemeral_data->{him_msg} },  				{  					header => q{},  					prio   => $msg->{prioritaet},  					lead   => $msg->{text}  				}  			); +			push( +				@{ $persistent_data->{him_msg} }, +				{ +					prio => $msg->{prioritaet}, +					lead => $msg->{text} +				} +			);  		}  	} @@ -849,7 +867,8 @@ sub update_departure_dbris {  		'in_transit',  		{  			real_departure => $stop->{rt_dep}, -			data           => $json->encode($data), +			data           => $json->encode($ephemeral_data), +			user_data      => $json->encode($persistent_data),  		},  		{  			user_id             => $uid, @@ -939,21 +958,30 @@ 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} : {}; +	my $res_h = $db->select( 'in_transit', [ 'data', 'user_data' ], +		{ user_id => $uid } )->expand->hash; +	my $ephemeral_data  = $res_h ? $res_h->{data}      : {}; +	my $persistent_data = $res_h ? $res_h->{user_data} : {}; -	$data->{him_msg} = []; +	$ephemeral_data->{him_msg}  = []; +	$persistent_data->{him_msg} = [];  	for my $msg ( $journey->messages ) {  		if ( not $msg->{ueberschrift} ) {  			push( -				@{ $data->{him_msg} }, +				@{ $ephemeral_data->{him_msg} },  				{  					header => q{},  					prio   => $msg->{prioritaet},  					lead   => $msg->{text}  				}  			); +			push( +				@{ $persistent_data->{him_msg} }, +				{ +					prio => $msg->{prioritaet}, +					lead => $msg->{text} +				} +			);  		}  	} @@ -991,7 +1019,8 @@ sub update_arrival_dbris {  		{  			real_arrival => $stop->{rt_arr},  			route        => $json->encode( [@route] ), -			data         => $json->encode($data), +			data         => $json->encode($ephemeral_data), +			user_data    => $json->encode($persistent_data),  		},  		{  			user_id             => $uid, | 
