packages feed

apiary-mongoDB 1.1.1 → 1.2.0

raw patch · 2 files changed

+31/−36 lines, 2 filesdep ~apiaryPVP ok

version bump matches the API change (PVP)

Dependency ranges changed: apiary

API changes (from Hackage documentation)

- Web.Apiary.MongoDB: instance (Has MongoDB exts, MonadBaseControl IO m, MonadIO m) => MongoAccess (ActionT exts prms m)
- Web.Apiary.MongoDB: instance (Has MongoDB exts, MonadBaseControl IO m, MonadIO m) => MongoAccess (ReaderT (Extensions exts) m)
- Web.Apiary.MongoDB: instance (Has MongoDB exts, MonadBaseControl IO m, MonadIO m, Monad actM) => MongoAccess (ApiaryT exts prms actM m)
- Web.Apiary.MongoDB: access :: MongoAccess m => Action m a -> m a
+ Web.Apiary.MongoDB: access :: (MonadExts es m, Has MongoDB es, MonadBaseControl IO m, MonadIO m) => Action m a -> m a

Files

apiary-mongoDB.cabal view
@@ -1,5 +1,5 @@ name:                apiary-mongoDB-version:             1.1.1+version:             1.2.0 synopsis:            mongoDB support for apiary web framework. -- description: license:             MIT@@ -19,7 +19,7 @@   exposed-modules:     Web.Apiary.MongoDB   other-modules:          build-depends:       base               >=4.6   && <4.8-                     , apiary             >=1.1   && <1.2+                     , apiary             >=1.2   && <1.3                      , mongoDB            >=2.0   && <2.1                      , resource-pool      >=0.2   && <0.3                      , data-default-class >=0.0   && <0.1
src/Web/Apiary/MongoDB.hs view
@@ -1,10 +1,9 @@-{-# LANGUAGE RecordWildCards #-}-{-# LANGUAGE FlexibleInstances #-}-{-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedStrings #-}-{-# LANGUAGE DataKinds #-} {-# LANGUAGE FlexibleContexts #-}+{-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE TypeOperators #-} {-# LANGUAGE Rank2Types #-}+{-# LANGUAGE DataKinds #-}  module Web.Apiary.MongoDB     ( MongoDB, MongoDBConfig(..), MongoQuery@@ -19,27 +18,27 @@     , module Database.MongoDB.Admin     ) where -import Control.Arrow-import Control.Applicative-import Control.Monad-import Control.Monad.Trans.Maybe-import Control.Monad.IO.Class-import Control.Monad.Trans.Control-import Control.Monad.Trans.Reader-import Control.Exception.Lifted-import Control.Monad.Apiary.Action-import Control.Monad.Apiary+import Control.Arrow(first)+import Control.Applicative((<|>))+import Control.Monad(unless)+import Control.Monad.Trans.Maybe(MaybeT(MaybeT, runMaybeT))+import Control.Monad.IO.Class(MonadIO(liftIO))+import Control.Monad.Trans.Control(MonadBaseControl)+import Control.Exception.Lifted(bracket, throwIO) -import Web.Apiary-import Web.Apiary.Heroku+import Web.Apiary.Heroku(Heroku, getHerokuEnv')  import qualified Database.MongoDB as MongoDB -import Data.Default.Class-import Data.Time(NominalDiffTime)-import Data.Pool-import Data.Apiary.Compat+import Data.Apiary.Compat(Proxy(Proxy)) import Data.Apiary.Extension+     (Has, Initializer', initializerBracket'+     , Initializer, initializerBracket+     , Extension, getExtension, MonadExts, getExt+     )+import Data.Default.Class(Default(def))+import Data.Time(NominalDiffTime)+import qualified Data.Pool as Pool import qualified Data.Text as T import qualified Data.Text.Read as T @@ -50,7 +49,7 @@  type MongoQuery = MongoDB.Query -data MongoDB = MongoDB (Pool Pipe) MongoDBConfig+data MongoDB = MongoDB (Pool.Pool Pipe) MongoDBConfig instance Extension MongoDB  data MongoDBConfig = MongoDBConfig@@ -69,9 +68,9 @@ initMongoDB' :: (MonadBaseControl IO m, MonadIO m)              => MongoDBConfig -> (MongoDB -> m a) -> m a initMongoDB' conf@MongoDBConfig{..} m =-    bracket (liftIO bra) (liftIO . destroyAllResources) (\a -> m (MongoDB a conf))+    bracket (liftIO bra) (liftIO . Pool.destroyAllResources) (\a -> m (MongoDB a conf))   where-    bra = createPool (MongoDB.connect' mongoDBTimeout mongoDBHost)+    bra = Pool.createPool (MongoDB.connect' mongoDBTimeout mongoDBHost)         MongoDB.close 1 connectionIdleTime numConnection  initMongoDB :: (MonadIO m, MonadBaseControl IO m)@@ -112,21 +111,17 @@ -- | query using 'MongoDBConfig' settings. -- -- if you want to access other db, other accessmode, please use 'useDb' or 'accessMode'.-class MongoAccess m where-    access :: Action m a -> m a+access :: (MonadExts es m, Has MongoDB es, MonadBaseControl IO m, MonadIO m)+       => Action m a -> m a+access m = getExt (Proxy :: Proxy MongoDB) >>= flip access' m -accessImpl :: (MonadBaseControl IO m, MonadIO m) => Action m a -> MongoDB -> m a-accessImpl m (MongoDB mongo conf) = withResource mongo $ \p ->++access' :: (MonadBaseControl IO m, MonadIO m)+        => MongoDB -> Action m a -> m a+access' (MongoDB mongo conf) m = Pool.withResource mongo $ \p ->     MongoDB.access p (mongoDBAccessMode conf) (mongoDBDatabase conf) $     maybe (return True) (uncurry auth) (mongoDBAuth conf)     >>= flip unless (throwIO $ ConnectionFailure $ userError "auth failed.")     >> m -instance (Has MongoDB exts, MonadBaseControl IO m, MonadIO m) => MongoAccess (ActionT exts prms m) where-    access m = getExt (Proxy :: Proxy MongoDB) >>= accessImpl m -instance (Has MongoDB exts, MonadBaseControl IO m, MonadIO m, Monad actM) => MongoAccess (ApiaryT exts prms actM m) where-    access m = apiaryExt (Proxy :: Proxy MongoDB) >>= accessImpl m--instance (Has MongoDB exts, MonadBaseControl IO m, MonadIO m) => MongoAccess (ReaderT (Extensions exts) m) where-    access m = ask >>= accessImpl m . getExtension (Proxy :: Proxy MongoDB)