freckle-app-1.0.0.1: library/Freckle/App/Ghci.hs
module Freckle.App.Ghci
( runDB
, runDB'
, loadEnv
, loadEnvTest
)
where
import Prelude
import Control.Monad.Reader (ReaderT)
import Database.Persist.Postgresql (runSqlPool)
import Database.Persist.Sql (SqlBackend)
import Freckle.App.Database (makePostgresPool)
import LoadEnv (loadEnv, loadEnvFrom)
-- | Run a db action against .env
runDB :: ReaderT SqlBackend IO b -> IO b
runDB f = loadEnv *> runDB' f
-- | Run a db action
runDB' :: ReaderT SqlBackend IO b -> IO b
runDB' f = do
pool <- makePostgresPool
runSqlPool f pool
loadEnvTest :: IO ()
loadEnvTest = loadEnvFrom ".env.test"