module Snap.Snaplet.MongoDB.Core ( MongoDB(..) , HasMongoDB(..) ) where import Database.MongoDB import System.IO.Pool ------------------------------------------------------------------------------ -- | Snaplet's data type. -- -- Example: -- @ -- data App = App -- { _heist :: Snaplet (Heist App) -- , _database :: Snaplet MongoDB -- } -- @ data MongoDB = MongoDB { mongoPool :: Pool IOError Pipe , mongoDatabase :: Database } ------------------------------------------------------------------------------ -- | Snaplet's type-class. -- -- Example: -- @ -- instance HasMongoDB App where -- getMongoDB = getL (snapletValue . database) -- @ -- -- Note: The (.) is from Control.Category. class HasMongoDB app where getMongoDB :: app -> MongoDB