diff options
| -rwxr-xr-x | index.pl | 53 | 
1 files changed, 27 insertions, 26 deletions
@@ -119,7 +119,7 @@ app->attr(  			from user_actions  			join stations on station_id = stations.id  			where user_id = ? -			order by action_time asc +			order by action_time desc  		}  		);  	} @@ -447,9 +447,9 @@ helper 'get_user_travels' => sub {  	my $uid   = $self->get_user_id;  	my $query = $self->app->get_all_actions_query; -	#if ($limit) { -	#	$query = $self->app->get_last_actions_query; -	#} +	if ($limit) { +		$query = $self->app->get_last_actions_query; +	}  	$query->execute($uid);  	my @travels; @@ -465,38 +465,39 @@ helper 'get_user_travels' => sub {  		$raw_route    = decode( 'UTF-8', $raw_route );  		$raw_messages = decode( 'UTF-8', $raw_messages ); -		if ( $action == $action_type{checkin} ) { +		if ( $action == $action_type{checkout} ) {  			push(  				@travels,  				{ -					from_name       => $name, -					sched_departure => epoch_to_dt($raw_sched_ts), -					rt_departure    => epoch_to_dt($raw_real_ts), -					type            => $train_type, -					line            => $train_line, -					no              => $train_no, -					messages        => [ split( qr{[|]}, $raw_messages ) ], -					route           => [ split( qr{[|]}, $raw_route ) ], -					completed       => 0, +					to_name       => $name, +					sched_arrival => epoch_to_dt($raw_sched_ts), +					rt_arrival    => epoch_to_dt($raw_real_ts), +					type          => $train_type, +					line          => $train_line, +					no            => $train_no, +					messages      => $raw_messages +					? [ split( qr{[|]}, $raw_messages ) ] +					: undef, +					route => $raw_route ? [ split( qr{[|]}, $raw_route ) ] +					: undef, +					completed => 0,  				}  			);  		} -		elsif ( $action == $action_type{checkout} ) { +		elsif ( $action == $action_type{checkin} and @travels ) {  			my $ref = $travels[-1]; -			$ref->{to_name}   = $name; -			$ref->{completed} = 1; - -			# if train_no is undef, we have a forced checkout without data -			if ($train_no) { -				$ref->{sched_arrival} = epoch_to_dt($raw_sched_ts), -				  $ref->{rt_arrival}  = epoch_to_dt($raw_real_ts), -				  $ref->{messages}    = [ split( qr{[|]}, $raw_messages ) ]; -			} +			$ref->{from_name}       = $name; +			$ref->{completed}       = 1; +			$ref->{sched_departure} = epoch_to_dt($raw_sched_ts), +			  $ref->{rt_departure}  = epoch_to_dt($raw_real_ts), +			  $ref->{type}   //= $train_type; +			$ref->{line}     //= $train_line; +			$ref->{no}       //= $train_no; +			$ref->{messages} //= [ split( qr{[|]}, $raw_messages ) ]; +			$ref->{route}    //= [ split( qr{[|]}, $raw_route ) ];  		}  	} -	@travels = reverse @travels; -  	return @travels;  };  | 
