module EZCouch (
createEntity,
createEntities,
readEntities,
readRandomEntities,
readEntity,
readKeysExist,
readKeys,
readCount,
KeysSelection(..),
updateEntity,
updateEntities,
deleteEntity,
deleteEntities,
readTime,
View(..),
ViewKey(..),
isolateEntity,
isolateEntities,
releaseIsolation,
releaseIsolations,
deleteIsolation,
deleteIsolations,
Isolation,
isolationEntity,
Persisted(..),
persistedIdHashPart,
tryOperation,
MonadAction,
run,
runWithManager,
ConnectionSettings(..),
defaultPort,
EZCouchException(..),
Entity(..),
ToJSON(..),
FromJSON(..)
) where
import Prelude ()
import ClassyPrelude
import EZCouch.Action
import EZCouch.Types
import EZCouch.ReadAction
import EZCouch.WriteAction
import EZCouch.View
import EZCouch.Entity
import EZCouch.Time
import EZCouch.Try
import EZCouch.EntityIsolation
import qualified EZCouch.Sweeper as Sweeper
import Data.Aeson
import Control.Monad.Reader
import Control.Monad.Trans.Resource
import qualified Network.HTTP.Conduit as HTTP
runWithManager manager settings action =
flip runReaderT (settings, manager) $ runResourceT $ do
resourceForkIO $ lift $ Sweeper.runSweeper
lift $ action
run settings action = HTTP.withManager $ \manager ->
runWithManager manager settings action