packages feed

apiary-mongoDB 1.1.0 → 1.1.1

raw patch · 2 files changed

+22/−10 lines, 2 filesPVP: major bump suggested

API removals or changes: PVP suggests a major version bump

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 :: (Has MongoDB exts, MonadBaseControl IO m, MonadIO m) => Action (ActionT exts prms m) a -> ActionT exts prms m a
+ Web.Apiary.MongoDB: access :: MongoAccess m => Action m a -> m a

Files

apiary-mongoDB.cabal view
@@ -1,5 +1,5 @@ name:                apiary-mongoDB-version:             1.1.0+version:             1.1.1 synopsis:            mongoDB support for apiary web framework. -- description: license:             MIT
src/Web/Apiary/MongoDB.hs view
@@ -1,4 +1,5 @@ {-# LANGUAGE RecordWildCards #-}+{-# LANGUAGE FlexibleInstances #-} {-# LANGUAGE TypeOperators #-} {-# LANGUAGE OverloadedStrings #-} {-# LANGUAGE DataKinds #-}@@ -24,8 +25,10 @@ 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 Web.Apiary import Web.Apiary.Heroku@@ -109,12 +112,21 @@ -- | query using 'MongoDBConfig' settings. -- -- if you want to access other db, other accessmode, please use 'useDb' or 'accessMode'.-access :: (Has MongoDB exts, MonadBaseControl IO m, MonadIO m)-       => Action (ActionT exts prms m) a -> ActionT exts prms m a-access m = do-    MongoDB mongo conf <- getExt (Proxy :: Proxy MongoDB)-    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+class MongoAccess m where+    access :: Action m a -> m a++accessImpl :: (MonadBaseControl IO m, MonadIO m) => Action m a -> MongoDB -> m a+accessImpl m (MongoDB mongo conf) = 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)