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