packages feed

optima-for-hasql-0.2: library/OptimaForHasql/Params.hs

module OptimaForHasql.Params 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 top-level parameters.
--
-- Produces a pool acquisition action.
poolAcquirer :: Params (IO Pool.Pool)
poolAcquirer =
  Pool.acquire
    <$> param Nothing "pool-size" Param.poolSize
    <*> param Nothing "pool-acquisition-timeout" Param.poolAcquisitionTimeout
    <*> connectionSettings

-- |
-- Parser of connection settings as top-level parameters.
connectionSettings :: Params Connection.Settings
connectionSettings =
  Connection.settings
    <$> param Nothing "host" Param.host
    <*> param Nothing "port" Param.port
    <*> param Nothing "user" Param.user
    <*> param Nothing "password" Param.password
    <*> param Nothing "database" Param.database