apiary-persistent 0.4.3.2 → 0.8.0.0
raw patch · 2 files changed
+17/−44 lines, 2 filesdep +reflectiondep +transformers-basePVP ok
version bump matches the API change (PVP)
Dependencies added: reflection, transformers-base
API changes (from Hackage documentation)
- Web.Apiary.Database.Persist: data ApiaryPersistConfig l
- Web.Apiary.Database.Persist: defaultApiaryPersistConfig :: ApiaryPersistConfig NoLoggingT
- Web.Apiary.Database.Persist: runSql' :: (MonadBaseControl IO logger, MonadIO m, HasPersist logger') => (logger a -> ResourceT IO b) -> SqlPersistT logger a -> m b
- Web.Apiary.Database.Persist: type LogRunner l = forall a. l (ResourceT IO) a -> ResourceT IO a
- Web.Apiary.Database.Persist: withWithSqlPool' :: ApiaryPersistConfig logger -> (forall a. (ConnectionPool -> m a) -> m a) -> (HasPersist logger => m b) -> m b
- Web.Apiary.Database.Persist: runSql :: (MonadBaseControl IO (l (ResourceT IO)), MonadIO m, HasPersist l) => SqlPersistT (l (ResourceT IO)) a -> m a
+ Web.Apiary.Database.Persist: runSql :: (MonadBaseControl IO m, HasPersist) => SqlPersistT (ResourceT m) a -> m a
- Web.Apiary.Database.Persist: type HasPersist l = ?webApiaryDatabasePersistState :: ApiaryPersistState l
+ Web.Apiary.Database.Persist: type HasPersist = Given ApiaryPersistState
- Web.Apiary.Database.Persist: withWithSqlPool :: (forall a. (ConnectionPool -> m a) -> m a) -> (HasPersist NoLoggingT => m b) -> m b
+ Web.Apiary.Database.Persist: withWithSqlPool :: (forall a. (ConnectionPool -> m a) -> m a) -> (HasPersist => m b) -> m b
Files
apiary-persistent.cabal view
@@ -1,6 +1,5 @@ name: apiary-persistent-version: 0.4.3.2-x-revision: 1+version: 0.8.0.0 synopsis: persistent support for apiary web framework. description: example: <https://github.com/philopon/apiary/blob/master/examples/persistent.hs>@@ -25,6 +24,8 @@ , monad-logger >=0.3 && <0.4 , resourcet >=1.1 && <1.2 , mtl >=2.1 && <2.2+ , reflection >=1.4 && <1.5+ , transformers-base >=0.4 && <0.5 hs-source-dirs: src ghc-options: -O2 -Wall
src/Web/Apiary/Database/Persist.hs view
@@ -5,63 +5,35 @@ {-# LANGUAGE KindSignatures #-} module Web.Apiary.Database.Persist (- -- * configuration- ApiaryPersistConfig- , defaultApiaryPersistConfig- -- * runner- , withWithSqlPool, withWithSqlPool'+ withWithSqlPool -- * execute sql- , runSql, runSql'+ , runSql -- * types- , HasPersist, LogRunner+ , HasPersist -- * reexport , module Database.Persist.Sql ) where import Database.Persist.Sql-import Control.Monad.Logger-import Control.Monad.Trans import Control.Monad.Trans.Resource--type HasPersist l =- ?webApiaryDatabasePersistState :: ApiaryPersistState l--type LogRunner l = forall a. l (ResourceT IO) a -> ResourceT IO a--newtype ApiaryPersistConfig l = ApiaryPersistConfig- { runLogger :: LogRunner l- }+import Data.Reflection -defaultApiaryPersistConfig :: ApiaryPersistConfig NoLoggingT-defaultApiaryPersistConfig = ApiaryPersistConfig runNoLoggingT+type HasPersist = Given ApiaryPersistState -data ApiaryPersistState l = ApiaryPersistState- { runLogger' :: LogRunner l- , getPool :: ConnectionPool+newtype ApiaryPersistState = ApiaryPersistState+ { getPool :: ConnectionPool } -runSql :: (MonadBaseControl IO (l (ResourceT IO)), MonadIO m, HasPersist l) => SqlPersistT (l (ResourceT IO)) a -> m a-runSql = runSql' (runLogger' ?webApiaryDatabasePersistState)--runSql' :: (MonadBaseControl IO logger, MonadIO m, HasPersist logger') => (logger a -> ResourceT IO b) -> SqlPersistT logger a -> m b-runSql' run a =- liftIO .- runResourceT .- run $- runSqlPool a (getPool ?webApiaryDatabasePersistState)+runSql :: (MonadBaseControl IO m, HasPersist) => SqlPersistT (ResourceT m) a -> m a+runSql a =+ runResourceT $+ runSqlPool a (getPool given) withWithSqlPool :: (forall a. (ConnectionPool -> m a) -> m a)- -> (HasPersist NoLoggingT => m b) -> m b-withWithSqlPool = withWithSqlPool' defaultApiaryPersistConfig--withWithSqlPool' :: ApiaryPersistConfig logger- -> (forall a. (ConnectionPool -> m a) -> m a)- -> (HasPersist logger => m b) -> m b-withWithSqlPool' conf with m = with $ \pool -> do- let ?webApiaryDatabasePersistState = ApiaryPersistState (runLogger conf) pool- m-+ -> (HasPersist => m b) -> m b+withWithSqlPool with m = with $ \pool -> + give (ApiaryPersistState pool) m