optima-for-hasql-0.2: library/OptimaForHasql/ParamGroup.hs
module OptimaForHasql.ParamGroup where
import qualified Hasql.Connection as Connection
import qualified Hasql.Pool as Pool
import Optima
import qualified OptimaForHasql.Param as Param
import OptimaForHasql.Prelude
-- |
-- Parser of pool settings as a parameter group.
--
-- Produces a pool acquisition action.
poolAcquirer :: ParamGroup (IO Pool.Pool)
poolAcquirer =
Pool.acquire
<$> member "pool-size" Param.poolSize
<*> member "pool-acquisition-timeout" Param.poolAcquisitionTimeout
<*> connectionSettings
-- |
-- Parser of connection settings as a parameter group.
connectionSettings :: ParamGroup Connection.Settings
connectionSettings =
Connection.settings
<$> member "host" Param.host
<*> member "port" Param.port
<*> member "user" Param.user
<*> member "password" Param.password
<*> member "database" Param.database