Loading lib/Travelynx.pm +9 −95 Original line number Diff line number Diff line Loading @@ -621,53 +621,12 @@ sub startup { } if ($polyline) { my $coords = $polyline->{coords}; my $from_eva = $polyline->{from_eva}; my $to_eva = $polyline->{to_eva}; my $polyline_str = JSON->new->encode($coords); my $pl_res = $db->select( 'polylines', ['id'], { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { limit => 1 } ); my $polyline_id; if ( my $h = $pl_res->hash ) { $polyline_id = $h->{id}; } else { eval { $polyline_id = $db->insert( 'polylines', { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { returning => 'id' } )->hash->{id}; }; if ($@) { $self->log->warn( "add_route_timestamps: insert polyline: $@" ); } } if ($polyline_id) { $self->in_transit->set_polyline_id( $self->in_transit->set_polyline( uid => $uid, db => $db, polyline_id => $polyline_id polyline => $polyline, ); } } # mustn't be called during a transaction if ( not $opt{in_transaction} ) { Loading Loading @@ -1372,58 +1331,13 @@ sub startup { ); if ($polyline) { my $coords = $polyline->{coords}; my $from_eva = $polyline->{from_eva}; my $to_eva = $polyline->{to_eva}; my $polyline_str = JSON->new->encode($coords); my $pl_res = $db->select( 'polylines', ['id'], { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { limit => 1 } ); my $polyline_id; if ( my $h = $pl_res->hash ) { $polyline_id = $h->{id}; } else { eval { $polyline_id = $db->insert( 'polylines', { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { returning => 'id' } )->hash->{id}; }; if ($@) { $self->app->log->warn( "add_route_timestamps: insert polyline: $@" ); } } if ( $polyline_id and ( not $in_transit->{polyline_id} or $polyline_id != $in_transit->{polyline_id} ) ) { $self->in_transit->set_polyline_id( $self->in_transit->set_polyline( uid => $uid, db => $db, polyline_id => $polyline_id polyline => $polyline, old_id => $in_transit->{polyline_id}, ); } } return; } Loading lib/Travelynx/Model/InTransit.pm +55 −0 Original line number Diff line number Diff line Loading @@ -517,6 +517,61 @@ sub set_arrival_times { ); } sub set_polyline { my ( $self, %opt ) = @_; my $uid = $opt{uid}; my $db = $opt{db} // $self->{pg}->db; my $polyline = $opt{polyline}; my $old_id = $opt{old_id}; my $coords = $polyline->{coords}; my $from_eva = $polyline->{from_eva}; my $to_eva = $polyline->{to_eva}; my $polyline_str = JSON->new->encode($coords); my $pl_res = $db->select( 'polylines', ['id'], { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str, }, { limit => 1 } ); my $polyline_id; if ( my $h = $pl_res->hash ) { $polyline_id = $h->{id}; } else { eval { $polyline_id = $db->insert( 'polylines', { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { returning => 'id' } )->hash->{id}; }; if ($@) { $self->{log}->warn("add_route_timestamps: insert polyline: $@"); } } if ( $polyline_id and ( not defined $old_id or $polyline_id != $old_id ) ) { $self->set_polyline_id( uid => $uid, db => $db, polyline_id => $polyline_id ); } } sub set_polyline_id { my ( $self, %opt ) = @_; Loading Loading
lib/Travelynx.pm +9 −95 Original line number Diff line number Diff line Loading @@ -621,53 +621,12 @@ sub startup { } if ($polyline) { my $coords = $polyline->{coords}; my $from_eva = $polyline->{from_eva}; my $to_eva = $polyline->{to_eva}; my $polyline_str = JSON->new->encode($coords); my $pl_res = $db->select( 'polylines', ['id'], { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { limit => 1 } ); my $polyline_id; if ( my $h = $pl_res->hash ) { $polyline_id = $h->{id}; } else { eval { $polyline_id = $db->insert( 'polylines', { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { returning => 'id' } )->hash->{id}; }; if ($@) { $self->log->warn( "add_route_timestamps: insert polyline: $@" ); } } if ($polyline_id) { $self->in_transit->set_polyline_id( $self->in_transit->set_polyline( uid => $uid, db => $db, polyline_id => $polyline_id polyline => $polyline, ); } } # mustn't be called during a transaction if ( not $opt{in_transaction} ) { Loading Loading @@ -1372,58 +1331,13 @@ sub startup { ); if ($polyline) { my $coords = $polyline->{coords}; my $from_eva = $polyline->{from_eva}; my $to_eva = $polyline->{to_eva}; my $polyline_str = JSON->new->encode($coords); my $pl_res = $db->select( 'polylines', ['id'], { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { limit => 1 } ); my $polyline_id; if ( my $h = $pl_res->hash ) { $polyline_id = $h->{id}; } else { eval { $polyline_id = $db->insert( 'polylines', { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { returning => 'id' } )->hash->{id}; }; if ($@) { $self->app->log->warn( "add_route_timestamps: insert polyline: $@" ); } } if ( $polyline_id and ( not $in_transit->{polyline_id} or $polyline_id != $in_transit->{polyline_id} ) ) { $self->in_transit->set_polyline_id( $self->in_transit->set_polyline( uid => $uid, db => $db, polyline_id => $polyline_id polyline => $polyline, old_id => $in_transit->{polyline_id}, ); } } return; } Loading
lib/Travelynx/Model/InTransit.pm +55 −0 Original line number Diff line number Diff line Loading @@ -517,6 +517,61 @@ sub set_arrival_times { ); } sub set_polyline { my ( $self, %opt ) = @_; my $uid = $opt{uid}; my $db = $opt{db} // $self->{pg}->db; my $polyline = $opt{polyline}; my $old_id = $opt{old_id}; my $coords = $polyline->{coords}; my $from_eva = $polyline->{from_eva}; my $to_eva = $polyline->{to_eva}; my $polyline_str = JSON->new->encode($coords); my $pl_res = $db->select( 'polylines', ['id'], { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str, }, { limit => 1 } ); my $polyline_id; if ( my $h = $pl_res->hash ) { $polyline_id = $h->{id}; } else { eval { $polyline_id = $db->insert( 'polylines', { origin_eva => $from_eva, destination_eva => $to_eva, polyline => $polyline_str }, { returning => 'id' } )->hash->{id}; }; if ($@) { $self->{log}->warn("add_route_timestamps: insert polyline: $@"); } } if ( $polyline_id and ( not defined $old_id or $polyline_id != $old_id ) ) { $self->set_polyline_id( uid => $uid, db => $db, polyline_id => $polyline_id ); } } sub set_polyline_id { my ( $self, %opt ) = @_; Loading