module Freckle.App.Ghci
( runDB
, runDB'
, loadEnv
, loadEnvTest
) where
import Freckle.App.Prelude
import Database.Persist.Postgresql (runSqlPool)
import Database.Persist.Sql (SqlBackend)
import Freckle.App.Database (makePostgresPool)
import LoadEnv (loadEnv, loadEnvFrom)
runDB :: ReaderT SqlBackend IO b -> IO b
runDB :: ReaderT SqlBackend IO b -> IO b
runDB ReaderT SqlBackend IO b
f = IO ()
loadEnv IO () -> IO b -> IO b
forall (f :: * -> *) a b. Applicative f => f a -> f b -> f b
*> ReaderT SqlBackend IO b -> IO b
forall b. ReaderT SqlBackend IO b -> IO b
runDB' ReaderT SqlBackend IO b
f
runDB' :: ReaderT SqlBackend IO b -> IO b
runDB' :: ReaderT SqlBackend IO b -> IO b
runDB' ReaderT SqlBackend IO b
f = do
SqlPool
pool <- IO SqlPool
makePostgresPool
ReaderT SqlBackend IO b -> SqlPool -> IO b
forall backend (m :: * -> *) a.
(MonadUnliftIO m, BackendCompatible SqlBackend backend) =>
ReaderT backend m a -> Pool backend -> m a
runSqlPool ReaderT SqlBackend IO b
f SqlPool
pool
loadEnvTest :: IO ()
loadEnvTest :: IO ()
loadEnvTest = FilePath -> IO ()
loadEnvFrom FilePath
".env.test"