{-# LANGUAGE FlexibleContexts #-}

{- | Make running Persistent based database transactions easy in Scottish apps.
-}
module Web.Scottish.Database.Persist where

import Control.Monad.IO.Class
import Control.Monad.Trans.Class

import Database.Persist.Sql

import Web.Scottish
import Web.Scottish.Database

runSql :: (MonadTrans t, HasDatabaseConnectionPool Connection config)
         => SqlPersistM a -> t (Scottish config s s') a
runSql s = liftIO . runSqlPersistMPool s >$< getPool