apiary-persistent 0.16.0 → 0.17.0
raw patch · 2 files changed
+28/−30 lines, 2 filesdep +persistent-sqlitedep ~apiarydep ~apiary-loggerPVP ok
version bump matches the API change (PVP)
Dependencies added: persistent-sqlite
Dependency ranges changed: apiary, apiary-logger
API changes (from Hackage documentation)
- Web.Apiary.Database.Persist: initPersist :: (MonadIO m, MonadBaseControl IO m, Has Logger exts) => With Connection (LogWrapper exts m) -> Migration -> Initializer exts m (Persist : exts)
+ Web.Apiary.Database.Persist: initPersist :: (MonadIO m, MonadBaseControl IO m) => With Connection (LogWrapper exts m) -> Migration -> Initializer m exts (Persist : exts)
- Web.Apiary.Database.Persist: initPersist' :: (MonadIO n, MonadBaseControl IO n) => (forall a. Extensions exts -> n a -> m a) -> With Connection n -> Migrator -> Initializer exts m (Persist : exts)
+ Web.Apiary.Database.Persist: initPersist' :: (MonadIO n, MonadBaseControl IO n) => (forall a. m a -> n a) -> (forall a. Extensions exts -> n a -> m a) -> With Connection n -> Migrator -> Initializer m exts (Persist : exts)
- Web.Apiary.Database.Persist: initPersistNoLog :: (MonadIO m, MonadBaseControl IO m) => With Connection (NoLoggingT m) -> Migration -> Initializer es m (Persist : es)
+ Web.Apiary.Database.Persist: initPersistNoLog :: (MonadIO m, MonadBaseControl IO m) => With Connection (NoLoggingT m) -> Migration -> Initializer m es (Persist : es)
- Web.Apiary.Database.Persist: initPersistPool :: (MonadIO m, MonadBaseControl IO m, Has Logger exts) => With ConnectionPool (LogWrapper exts m) -> Migration -> Initializer exts m (Persist : exts)
+ Web.Apiary.Database.Persist: initPersistPool :: (MonadIO m, MonadBaseControl IO m) => With ConnectionPool (LogWrapper exts m) -> Migration -> Initializer m exts (Persist : exts)
- Web.Apiary.Database.Persist: initPersistPool' :: (MonadIO n, MonadBaseControl IO n) => (forall a. Extensions exts -> n a -> m a) -> With ConnectionPool n -> Migrator -> Initializer exts m (Persist : exts)
+ Web.Apiary.Database.Persist: initPersistPool' :: (MonadIO n, MonadBaseControl IO n) => (forall a. m a -> n a) -> (forall a. Extensions exts -> n a -> m a) -> With ConnectionPool n -> Migrator -> Initializer m exts (Persist : exts)
- Web.Apiary.Database.Persist: initPersistPoolNoLog :: (MonadIO m, MonadBaseControl IO m) => With ConnectionPool (NoLoggingT m) -> Migration -> Initializer exts m (Persist : exts)
+ Web.Apiary.Database.Persist: initPersistPoolNoLog :: (MonadIO m, MonadBaseControl IO m) => With ConnectionPool (NoLoggingT m) -> Migration -> Initializer m es (Persist : es)
Files
apiary-persistent.cabal view
@@ -1,5 +1,5 @@ name: apiary-persistent-version: 0.16.0+version: 0.17.0 synopsis: persistent support for apiary web framework. description: example: <https://github.com/philopon/apiary/blob/master/examples/persistent.hs>@@ -21,8 +21,8 @@ build-depends: base >=4.6 && <4.8 , persistent >=2.0 && <2.1 - , apiary >=0.16 && <0.17- , apiary-logger >=0.16 && <0.17+ , apiary >=0.17 && <0.18+ , apiary-logger >=0.17 && <0.18 , resourcet >=1.1 && <1.2 , resource-pool >=0.2 && <0.3@@ -31,6 +31,7 @@ , transformers >=0.2 && <0.5 , transformers-base >=0.4 && <0.5 , monad-control >=0.3 && <0.4+ , persistent-sqlite hs-source-dirs: src ghc-options: -O2 -Wall default-language: Haskell2010
src/Web/Apiary/Database/Persist.hs view
@@ -10,6 +10,7 @@ {-# LANGUAGE LambdaCase #-} {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE ScopedTypeVariables #-} module Web.Apiary.Database.Persist ( Persist@@ -54,15 +55,13 @@ type With c m = forall a. (c -> m a) -> m a -initPersist' :: (MonadIO n, MonadBaseControl IO n)- => (forall a. Extensions exts -> n a -> m a)- -> With Connection n- -> Migrator- -> Initializer exts m (Persist ': exts)-initPersist' run with migr = Initializer $ \e ->- run e $ with $ \conn -> do+initPersist' :: (MonadIO n, MonadBaseControl IO n) + => (forall a. m a -> n a) -> (forall a. Extensions exts -> n a -> m a)+ -> With Connection n -> Migrator -> Initializer m exts (Persist ': exts)+initPersist' wrap run with migr = Initializer $ \es m -> run es $+ with $ \conn -> do doMigration migr conn- return $ addExtension (PersistConn conn) e+ wrap $ m (addExtension (PersistConn conn) es) -- | construct persist extension initializer with no connection pool. --@@ -71,35 +70,33 @@ -- @ -- initPersist (withSqliteConn "db.sqlite") migrateAll -- @-initPersist :: (MonadIO m, MonadBaseControl IO m, Has Logger exts)+initPersist :: (MonadIO m, MonadBaseControl IO m) => With Connection (LogWrapper exts m) -> Migration- -> Initializer exts m (Persist ': exts)-initPersist w = initPersist' runLogWrapper w . Logging+ -> Initializer m exts (Persist ': exts)+initPersist with = initPersist' logWrapper runLogWrapper with . Logging -initPersistNoLog :: (MonadIO m, MonadBaseControl IO m)+initPersistNoLog :: (MonadIO m, MonadBaseControl IO m) => With Connection (NoLoggingT m)- -> Migration -> Initializer es m (Persist ': es)-initPersistNoLog w = initPersist' (const runNoLoggingT) w . Silent+ -> Migration -> Initializer m es (Persist ': es)+initPersistNoLog with = initPersist' NoLoggingT (const runNoLoggingT) with . Silent initPersistPool' :: (MonadIO n, MonadBaseControl IO n)- => (forall a. Extensions exts -> n a -> m a)- -> With ConnectionPool n- -> Migrator- -> Initializer exts m (Persist ': exts)-initPersistPool' run with migr = Initializer $ \e ->- run e $ with $ \pool -> do+ => (forall a. m a -> n a) -> (forall a. Extensions exts -> n a -> m a)+ -> With ConnectionPool n -> Migrator -> Initializer m exts (Persist ': exts)+initPersistPool' wrap run with migr = Initializer $ \es m -> run es $+ with $ \pool -> do withResource pool $ doMigration migr- return $ addExtension (PersistPool pool) e+ wrap $ m (addExtension (PersistPool pool) es) -initPersistPool :: (MonadIO m, MonadBaseControl IO m, Has Logger exts)+initPersistPool :: (MonadIO m, MonadBaseControl IO m) => With ConnectionPool (LogWrapper exts m) -> Migration- -> Initializer exts m (Persist ': exts)-initPersistPool w = initPersistPool' runLogWrapper w . Logging+ -> Initializer m exts (Persist ': exts)+initPersistPool with = initPersistPool' logWrapper runLogWrapper with . Logging initPersistPoolNoLog :: (MonadIO m, MonadBaseControl IO m)- => With ConnectionPool (NoLoggingT m) -> Migration- -> Initializer exts m (Persist ': exts)-initPersistPoolNoLog w = initPersistPool' (const runNoLoggingT) w . Silent+ => With ConnectionPool (NoLoggingT m)+ -> Migration -> Initializer m es (Persist ': es)+initPersistPoolNoLog with = initPersistPool' NoLoggingT (const runNoLoggingT) with . Silent doMigration :: (MonadIO m, MonadBaseControl IO m) => Migrator -> Connection -> m () doMigration migr conn = case migr of