hasql-transaction-0.9: conflicts-test/Main/Transactions.hs
module Main.Transactions where
import Prelude
import Hasql.Transaction
import qualified Main.Statements as A
createSchema :: Transaction ()
createSchema = statement Write Serializable A.createAccountTable ()
dropSchema :: Transaction ()
dropSchema = statement Write Serializable A.dropAccountTable ()
transfer :: Int64 -> Int64 -> Scientific -> Transaction Bool
transfer id1 id2 amount = do
ifS
(statement Write Serializable A.modifyBalance (id1, amount))
(statement Write Serializable A.modifyBalance (id2, negate amount))
(pure False)
transferTimes :: Int -> Int64 -> Int64 -> Scientific -> Transaction ()
transferTimes times id1 id2 amount = replicateM_ times (transfer id1 id2 amount)
getBalance :: Int64 -> Transaction (Maybe Scientific)
getBalance id = statement Read ReadCommitted A.getBalance id