add_route_timestamps: do not re-request trip id if it is already known

This commit is contained in:
Birte Kristina Friesel 2024-08-14 21:50:55 +02:00
parent c5af2fec5b
commit 43fc820e0c
No known key found for this signature in database
GPG key ID: 19E6E524EBB177BA

View file

@ -1372,17 +1372,28 @@ sub startup {
my $route = $in_transit->{route};
my $train_id = $train->train_id;
# TODO get_tripid_p is only needed on the first call, afterwards the tripid is known.
$self->hafas->get_tripid_p( train => $train )->then(
my $tripid_promise;
if ( $in_transit->{data}{trip_id} ) {
$tripid_promise
= Mojo::Promise->resolve( $in_transit->{data}{trip_id} );
}
else {
$tripid_promise = $self->hafas->get_tripid_p( train => $train );
}
$tripid_promise->then(
sub {
my ($trip_id) = @_;
$self->in_transit->update_data(
uid => $uid,
db => $db,
data => { trip_id => $trip_id },
train_id => $train_id,
);
if ( not $in_transit->{extra_data}{trip_id} ) {
$self->in_transit->update_data(
uid => $uid,
db => $db,
data => { trip_id => $trip_id },
train_id => $train_id,
);
}
return $self->hafas->get_route_p(
train => $train,