Commit 115e07f3 authored by Daniel Friesel's avatar Daniel Friesel
Browse files

move grep_unknown_stations to Stations model

parent afedcef2
Loading
Loading
Loading
Loading
+1 −16
Original line number Diff line number Diff line
@@ -419,21 +419,6 @@ sub startup {
		}
	);

	$self->helper(
		'grep_unknown_stations' => sub {
			my ( $self, @stations ) = @_;

			my @unknown_stations;
			for my $station (@stations) {
				my $station_info = $self->stations->get_by_name($station);
				if ( not $station_info ) {
					push( @unknown_stations, $station );
				}
			}
			return @unknown_stations;
		}
	);

	$self->helper(
		'load_icon' => sub {
			my ( $self, $load ) = @_;
@@ -750,7 +735,7 @@ sub startup {
					$has_arrived = $train->arrival->epoch < $now->epoch ? 1 : 0;
					if ($has_arrived) {
						my @unknown_stations
						  = $self->grep_unknown_stations( $train->route );
						  = $self->stations->grep_unknown( $train->route );
						if (@unknown_stations) {
							$self->app->log->warn(
								sprintf(
+2 −15
Original line number Diff line number Diff line
@@ -34,19 +34,6 @@ sub epoch_to_dt {
	);
}

sub grep_unknown_stations {
	my ( $self, @stations ) = @_;

	my @unknown_stations;
	for my $station (@stations) {
		my $station_info = $self->{stations}->get_by_name($station);
		if ( not $station_info ) {
			push( @unknown_stations, $station );
		}
	}
	return @unknown_stations;
}

sub new {
	my ( $class, %opt ) = @_;

@@ -917,8 +904,8 @@ sub sanity_check {
	}
	if ( $journey->{edited} & 0x0010 and not $lax ) {
		my @unknown_stations
		  = $self->grep_unknown_stations( map { $_->[0] }
			  @{ $journey->{route} } );
		  = $self->{stations}
		  ->grep_unknown( map { $_->[0] } @{ $journey->{route} } );
		if (@unknown_stations) {
			return 'Unbekannte Station(en): ' . join( ', ', @unknown_stations );
		}
+20 −0
Original line number Diff line number Diff line
@@ -61,6 +61,16 @@ sub get_by_name {
	  ->hash;
}

# Slow
sub get_by_names {
	my ( $self, @names ) = @_;

	my @ret
	  = $self->{pg}->db->select( 'stations', '*', { name => { '=', \@names } } )
	  ->hashes->each;
	return @ret;
}

# Slow
sub get_by_ds100 {
	my ( $self, $ds100, %opt ) = @_;
@@ -85,4 +95,14 @@ sub search {
	  // $self->get_by_name( $identifier, %opt );
}

# Slow
sub grep_unknown {
	my ( $self, @stations ) = @_;

	my %station = map { $_->{name} => 1 } $self->get_by_names(@stations);
	my @unknown_stations = grep { not $station{$_} } @stations;

	return @unknown_stations;
}

1;