packages feed

wheb-mongo-0.0.3.0: wheb-mongo.cabal

name:                wheb-mongo
version:             0.0.3.0
synopsis:            MongoDB plugin for Wheb
homepage:            https://github.com/hansonkd/Wheb-Framework
license:             BSD3
license-file:        LICENSE
author:              Kyle Hanson
maintainer:          hanooter@gmail.com
category:            Database
build-type:          Simple
cabal-version:       >=1.8
description:         
  Wheb plugin for MongoDB.
  .
  * Implements SessionBackend and AuthBackend instances using MongoDB and Wheb.
  .
  * Creates simple interface for arbitrary MongoDB actions using <http://hackage.haskell.org/package/Wheb Wheb>
  .
  * Creates simple interface for arbitrary MongoDB actions using <http://hackage.haskell.org/package/mongoDB mongoDB>
  .
  For a complete example, see the examples folder at <https://github.com/hansonkd/Wheb-Framework/tree/master/examples github>
  . 
  You can override the collection names for the Auth and Session documents by using 'addSetting' and setting keys for \"session-collection\"
  and \"auth-collection\"
  .
  > opts <- generateOptions $ do
  >    addSetting "session-collection" "my-collection"
  .
  Reimplimentation of official example below. Use with language extensions /OvererloadedStrings/ & /ExtendedDefaultRules/.
  .
  >  import qualified Data.Text.Lazy as T
  >  
  >  import           Web.Wheb
  >  import           Web.Wheb.Plugins.Mongo
  >  
  >  data MyApp = MyApp MongoContainer
  >  data MyRequestState = MyRequestState
  >  
  >  instance MongoApp MyApp where
  >      getMongoContainer (MyApp mc) = mc
  >  
  >  homePage :: WhebHandler MyApp MyRequestState
  >  homePage = do
  >      teams <- runAction $ rest =<< find (select [] "team")
  >      text $ T.intercalate " | " $ map spack teams
  >  
  >  main :: IO ()
  >  main = do
  >    opts <- generateOptions $ do
  >      addGET "." rootPat $ homePage
  >      mongo <- initMongo "127.0.0.1:27017" "master"
  >      return (MyApp mongo, MyRequestState)
  >
  >    runRawHandler opts $ do
  >      runAction $ do
  >          delete (select [] "team")
  >          insertMany "team" [
  >              ["name" =: "Yankees", "home" =: ["city" =: "New York", "state" =: "NY"], "league" =: "American"],
  >              ["name" =: "Mets", "home" =: ["city" =: "New York", "state" =: "NY"], "league" =: "National"],
  >              ["name" =: "Phillies", "home" =: ["city" =: "Philadelphia", "state" =: "PA"], "league" =: "National"],
  >              ["name" =: "Red Sox", "home" =: ["city" =: "Boston", "state" =: "MA"], "league" =: "American"] ]
  >  
  >    runWhebServer opts

library
  exposed-modules:     Web.Wheb.Plugins.Mongo
  build-depends:       base >=4.7 && <4.8, 
                       text >= 1.0 && < 1.2, 
                       mongoDB >=2.0 && < 2.1, 
                       Wheb >=0.3 && < 0.4, 
                       bson >=0.3 && <0.4, 
                       mtl >= 2.1 && < 2.3