diff --git a/backend/src/Datarekisteri/Backend/DB/Queries.hs b/backend/src/Datarekisteri/Backend/DB/Queries.hs index d31578f..c351533 100644 --- a/backend/src/Datarekisteri/Backend/DB/Queries.hs +++ b/backend/src/Datarekisteri/Backend/DB/Queries.hs @@ -137,6 +137,13 @@ deleteExpiredEmails time = runQuery $ delete $ do verification <- from $ table @DBEmailVerification where_ $ verification ^. DBEmailVerificationExpires <=. val time +deleteOrphanedVerifications :: MonadDB m => m () +deleteOrphanedVerifications = runQuery $ delete $ do + verification <- from $ table @DBEmailVerification + where_ $ (==. val (0 :: Int)) $ subSelectCount $ do + email <- from $ table @DBEmail + where_ $ email ^. DBEmailVid ==. just (verification ^. DBEmailVerificationId) + deleteUsersWithoutEmail :: MonadDB m => m () deleteUsersWithoutEmail = runQuery $ delete $ do user <- from $ table @DBUser diff --git a/backend/src/Datarekisteri/CLI.hs b/backend/src/Datarekisteri/CLI.hs index 6458d54..1e4d224 100644 --- a/backend/src/Datarekisteri/CLI.hs +++ b/backend/src/Datarekisteri/CLI.hs @@ -58,6 +58,7 @@ gcEmailsMain :: CLIM () gcEmailsMain = do time <- currentTime deleteExpiredEmails time + deleteOrphanedVerifications gcApplicationsMain :: CLIM () gcApplicationsMain = do