diff options
| -rw-r--r-- | lib/Travelynx/Command/missingstations.pm | 44 | 
1 files changed, 44 insertions, 0 deletions
diff --git a/lib/Travelynx/Command/missingstations.pm b/lib/Travelynx/Command/missingstations.pm new file mode 100644 index 0000000..ab340ce --- /dev/null +++ b/lib/Travelynx/Command/missingstations.pm @@ -0,0 +1,44 @@ +package Travelynx::Command::missingstations; + +# Copyright (C) 2022 Daniel Friesel +# +# SPDX-License-Identifier: AGPL-3.0-or-later + +use Mojo::Base 'Mojolicious::Command'; +use List::Util qw(); +use Travel::Status::DE::IRIS::Stations; + +sub run { +	my ($self) = @_; + +	my %station; + +	for my $s ( Travel::Status::DE::IRIS::Stations::get_stations() ) { +		$station{ $s->[2] } = 1; +	} + +	my @journey_stations; + +	my $res +	  = $self->app->pg->db->select( 'journeys', ['checkin_station_id'], {}, +		{ group_by => ['checkin_station_id'] } ); +	for my $j ( $res->hashes->each ) { +		push( @journey_stations, $j->{checkin_station_id} ); +	} + +	$res = $self->app->pg->db->select( 'journeys', ['checkout_station_id'], {}, +		{ group_by => ['checkout_station_id'] } ); +	for my $j ( $res->hashes->each ) { +		push( @journey_stations, $j->{checkout_station_id} ); +	} + +	@journey_stations = List::Util::uniq @journey_stations; + +	for my $eva (@journey_stations) { +		if ( not $station{$eva} ) { +			say $eva; +		} +	} +} + +1;  | 
