From 47c6ebf9a13417f94994eee159448d36da4b09fc Mon Sep 17 00:00:00 2001 From: Saku Laesvuori Date: Thu, 28 Sep 2023 15:48:05 +0300 Subject: [PATCH] Send acceptance email only to applicants --- backend/src/Datarekisteri/Backend/API.hs | 5 +++-- backend/src/Datarekisteri/Backend/DB/Queries.hs | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/backend/src/Datarekisteri/Backend/API.hs b/backend/src/Datarekisteri/Backend/API.hs index 0614c02..a3a5948 100644 --- a/backend/src/Datarekisteri/Backend/API.hs +++ b/backend/src/Datarekisteri/Backend/API.hs @@ -198,8 +198,9 @@ acceptApplication user = void $ do Nothing -> throwError $ "No valid application for " <> show user <> "!" Just email -> do time <- currentTime - markAsAccepted user time - void $ sendApplicationAcceptedEmail $ dBEmailEmail $ entityVal email + applicationAccepted <- markAsAccepted user time + when applicationAccepted $ + sendApplicationAcceptedEmail $ dBEmailEmail $ entityVal email rejectApplication :: (MonadDB m, MonadTime m, MonadError GQLError m, MonadEmail m) => UserID -> m Unit rejectApplication user = void $ do diff --git a/backend/src/Datarekisteri/Backend/DB/Queries.hs b/backend/src/Datarekisteri/Backend/DB/Queries.hs index 976f26e..7f68596 100644 --- a/backend/src/Datarekisteri/Backend/DB/Queries.hs +++ b/backend/src/Datarekisteri/Backend/DB/Queries.hs @@ -160,8 +160,8 @@ updateEmail user email secret = getExpireTime >>= \expires -> runQuery $ do , dBEmailVid = Just verificationId } -markAsAccepted :: MonadDB m => UserID -> Time -> m () -markAsAccepted userID time = runQuery $ update $ \user -> do +markAsAccepted :: MonadDB m => UserID -> Time -> m Bool +markAsAccepted userID time = fmap (> 0) $ runQuery $ updateCount $ \user -> do set user [DBUserAccepted =. just (val time)] where_ $ user ^. DBUserId ==. val (toDBKey userID) &&. isApplicant user