{-# LANGUAGE OverloadedStrings #-}
module Yam.Transaction.Postgresql where
import Yam.Import
import Yam.Logger
import Yam.Transaction
import Control.Monad.IO.Unlift
import Database.Persist.Postgresql
data PostgreSQL
instance HasDataSource PostgreSQL where
connector _ lg ds a = runLoggingT (withPostgresqlPool (cs $ conn ds) (thread ds) (lift.a)) lg
postgresqlProvider :: (MonadTransaction m, MonadUnliftIO m) => DataSourceProvider m a
postgresqlProvider = ("postgresql", connector (Proxy :: Proxy PostgreSQL))