subtree(users/wpcarro): docking briefcase at '24f5a642'
git-subtree-dir: users/wpcarro git-subtree-mainline:464bbcb15cgit-subtree-split:24f5a642afChange-Id: I6105b3762b79126b3488359c95978cadb3efa789
This commit is contained in:
commit
019f8fd211
766 changed files with 175420 additions and 0 deletions
32
users/wpcarro/assessments/tt/src/PendingAccounts.hs
Normal file
32
users/wpcarro/assessments/tt/src/PendingAccounts.hs
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
{-# LANGUAGE OverloadedStrings #-}
|
||||
{-# LANGUAGE RecordWildCards #-}
|
||||
--------------------------------------------------------------------------------
|
||||
module PendingAccounts where
|
||||
--------------------------------------------------------------------------------
|
||||
import Database.SQLite.Simple
|
||||
|
||||
import qualified Types as T
|
||||
--------------------------------------------------------------------------------
|
||||
|
||||
create :: FilePath
|
||||
-> T.RegistrationSecret
|
||||
-> T.Username
|
||||
-> T.ClearTextPassword
|
||||
-> T.Role
|
||||
-> T.Email
|
||||
-> IO ()
|
||||
create dbFile secret username password role email = withConnection dbFile $ \conn -> do
|
||||
hashed <- T.hashPassword password
|
||||
execute conn "INSERT INTO PendingAccounts (secret,username,password,role,email) VALUES (?,?,?,?,?)"
|
||||
(secret, username, hashed, role, email)
|
||||
|
||||
get :: FilePath -> T.Username -> IO (Maybe T.PendingAccount)
|
||||
get dbFile username = withConnection dbFile $ \conn -> do
|
||||
res <- query conn "SELECT secret,username,password,role,email FROM PendingAccounts WHERE username = ?" (Only username)
|
||||
case res of
|
||||
[x] -> pure (Just x)
|
||||
_ -> pure Nothing
|
||||
|
||||
delete :: FilePath -> T.Username -> IO ()
|
||||
delete dbFile username = withConnection dbFile $ \conn ->
|
||||
execute conn "DELETE FROM PendingAccounts WHERE username = ?" (Only username)
|
||||
Loading…
Add table
Add a link
Reference in a new issue