packages feed

vault-trans-0.1.0: src/lib/Network/VaultTool/Trans/Database/Postgresql.hs

{-# LANGUAGE OverloadedStrings #-}

module Network.VaultTool.Trans.Database.Postgresql
    ( connect
    ) where

import           Control.Monad.IO.Class           (MonadIO, liftIO)
import           Data.Text                        (unpack)
import qualified Database.PostgreSQL.Simple       as PSQL
import           GHC.Word                         (Word16)

import           Network.VaultTool.Trans          (VaultT (..))
import           Network.VaultTool.Trans.Database (readCredentials)


connect :: MonadIO m => String -> Word16 -> String -> VaultT m PSQL.Connection
connect host port database = do
    (username, password) <- readCredentials
    liftIO . PSQL.connect $ PSQL.ConnectInfo host port (unpack username) (unpack password) database