diff --git a/backend/src/Datarekisteri/Backend/DB/Queries.hs b/backend/src/Datarekisteri/Backend/DB/Queries.hs index 6990e5d..d31578f 100644 --- a/backend/src/Datarekisteri/Backend/DB/Queries.hs +++ b/backend/src/Datarekisteri/Backend/DB/Queries.hs @@ -96,10 +96,11 @@ isMember user = not_ $ isApplicant user verifyEmailSecret :: MonadDB m => Text -> m Bool verifyEmailSecret secret = runQuery $ do update $ \email -> do - verification <- from $ table @DBEmailVerification set email [DBEmailVid =. val Nothing] - where_ $ email ^. DBEmailVid ==. just (verification ^. DBEmailVerificationId) - &&. verification ^. DBEmailVerificationSecret ==. val secret + where_ $ (>. val (0 :: Int)) $ subSelectCount $ do + verification <- from $ table @DBEmailVerification + where_ $ email ^. DBEmailVid ==. just (verification ^. DBEmailVerificationId) + &&. verification ^. DBEmailVerificationSecret ==. val secret fmap (> 0) $ deleteCount $ do verification <- from (table @DBEmailVerification) where_ $ verification ^. DBEmailVerificationSecret ==. val secret