packages feed

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