diff options
author | Joris | 2017-06-05 18:02:13 +0200 |
---|---|---|
committer | Joris | 2017-06-05 18:02:13 +0200 |
commit | 0b191f5c48edffc9da3e38c284e9640fd82e7cb1 (patch) | |
tree | c729e53822e7c41c1a854d82d25636e58ee65c9f /src/server/Controller/SignIn.hs | |
parent | 5c110716cfda6e616a795edd12f2012b132dca9f (diff) | |
download | budget-0b191f5c48edffc9da3e38c284e9640fd82e7cb1.tar.gz budget-0b191f5c48edffc9da3e38c284e9640fd82e7cb1.tar.bz2 budget-0b191f5c48edffc9da3e38c284e9640fd82e7cb1.zip |
Replace persistent by sqlite-simple
Diffstat (limited to 'src/server/Controller/SignIn.hs')
-rw-r--r-- | src/server/Controller/SignIn.hs | 33 |
1 files changed, 12 insertions, 21 deletions
diff --git a/src/server/Controller/SignIn.hs b/src/server/Controller/SignIn.hs index 1b8121d..152168c 100644 --- a/src/server/Controller/SignIn.hs +++ b/src/server/Controller/SignIn.hs @@ -4,48 +4,39 @@ module Controller.SignIn ( signIn ) where -import Web.Scotty - -import Network.HTTP.Types.Status (ok200, badRequest400) - -import Database.Persist hiding (Key) - import Control.Monad.IO.Class (liftIO) - import Data.Text (Text) +import Network.HTTP.Types.Status (ok200, badRequest400) import qualified Data.Text as T -import qualified Data.Text.Lazy as TL import qualified Data.Text.Encoding as TE +import qualified Data.Text.Lazy as TL +import Web.Scotty import Conf (Conf) -import qualified Conf - -import SendMail - -import Text.Email.Validate as Email - -import Model.Database -import Model.User -import Model.SignIn import Model.Message.Key - +import qualified Conf +import qualified Model.Query as Query +import qualified Model.SignIn as SignIn +import qualified Model.User as User +import qualified SendMail +import qualified Text.Email.Validate as Email import qualified View.Mail.SignIn as SignIn signIn :: Conf -> Text -> ActionM () signIn conf login = if Email.isValid (TE.encodeUtf8 login) then do - maybeUser <- liftIO . runDb $ getUser login + maybeUser <- liftIO . Query.run $ User.getUser login case maybeUser of Just user -> do - token <- liftIO . runDb $ createSignInToken login + token <- liftIO . Query.run $ SignIn.createSignInToken login let url = T.concat [ if Conf.https conf then "https://" else "http://", Conf.hostname conf, "?signInToken=", token ] - maybeSentMail <- liftIO . sendMail $ SignIn.mail conf (entityVal user) url [login] + maybeSentMail <- liftIO . SendMail.sendMail $ SignIn.mail conf user url [login] case maybeSentMail of Right _ -> status ok200 |