mirror of
https://github.com/nikita-volkov/hasql.git
synced 2024-11-26 23:33:02 +03:00
29 lines
738 B
Haskell
29 lines
738 B
Haskell
|
module Main.Connection
|
||
|
where
|
||
|
|
||
|
import Main.Prelude
|
||
|
import qualified Hasql.Connection as HC
|
||
|
import qualified Hasql.Query as HQ
|
||
|
import qualified Hasql.Session
|
||
|
|
||
|
|
||
|
with :: (HC.Connection -> IO a) -> IO (Either HC.ConnectionError a)
|
||
|
with handler =
|
||
|
runEitherT $ acquire >>= \connection -> use connection <* release connection
|
||
|
where
|
||
|
acquire =
|
||
|
EitherT $ HC.acquire settings
|
||
|
where
|
||
|
settings =
|
||
|
HC.settings host port user password database
|
||
|
where
|
||
|
host = "localhost"
|
||
|
port = 5432
|
||
|
user = "postgres"
|
||
|
password = ""
|
||
|
database = "postgres"
|
||
|
use connection =
|
||
|
lift $ handler connection
|
||
|
release connection =
|
||
|
lift $ HC.release connection
|