From c6634b409750e7c79f7c4369a7c7ec5929868214 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Fri, 20 Dec 2019 18:56:57 +0100 Subject: [PATCH] maintenance: remove checkins which were entered more than 48 hours ago --- lib/Travelynx/Command/maintenance.pm | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/lib/Travelynx/Command/maintenance.pm b/lib/Travelynx/Command/maintenance.pm index fc64884..5cbf982 100644 --- a/lib/Travelynx/Command/maintenance.pm +++ b/lib/Travelynx/Command/maintenance.pm @@ -3,14 +3,15 @@ use Mojo::Base 'Mojolicious::Command'; use DateTime; -has description => 'Prune unverified users etc'; +has description => 'Prune unverified users, incomplete checkins etc'; has usage => sub { shift->extract_usage }; sub run { my ( $self, $filename ) = @_; - my $now = DateTime->now( time_zone => 'Europe/Berlin' ); + my $now = DateTime->now( time_zone => 'Europe/Berlin' ); + my $checkin_deadline = $now->clone->subtract( hours => 48 ); my $verification_deadline = $now->clone->subtract( hours => 48 ); my $deletion_deadline = $now->clone->subtract( hours => 72 ); my $old_deadline = $now->clone->subtract( years => 1 ); @@ -18,6 +19,13 @@ sub run { my $db = $self->app->pg->db; my $tx = $db->begin; + my $res = $db->delete( 'in_transit', + { checkin_time => { '<', $checkin_deadline } } ); + + if ( my $rows = $res->rows ) { + printf( "Removed %d incomplete checkins\n", $rows ); + } + my $unverified = $db->select( 'users', 'id, email, extract(epoch from registered_at) as registered_ts', @@ -64,7 +72,7 @@ sub run { printf( "Pruned unverified user %d\n", $user->{id} ); } - my $res = $db->delete( 'pending_passwords', + $res = $db->delete( 'pending_passwords', { requested_at => { '<', $verification_deadline } } ); if ( my $rows = $res->rows ) {