2022-12-04 17:52:01 +00:00
|
|
|
package Travelynx::Command::integritycheck;
|
2022-11-25 17:26:32 +00:00
|
|
|
|
|
|
|
# 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;
|