module Lucienne.Controller.Util ( decodeBody, seeOther, seeFeed, seeHome, seeHomeWith , lookParameter, readParameter) where import Control.Applicative (optional) import qualified Happstack.Server as S import Lucienne.Controller (Controller) import Lucienne.Model.Util (showObjectId) import Data.Bson (ObjectId) import qualified Lucienne.Url as Url import Lucienne.Controller.Message(Message, withMessage, readParameter) decodeBody :: Controller () decodeBody = S.decodeBody decodePolicy seeOther :: String -> Controller S.Response seeOther url = S.seeOther url $ S.toResponse () seeFeed :: ObjectId -> Controller S.Response seeFeed feedId = seeOther $ Url.feed ++ "/" ++ showObjectId feedId seeHome :: Controller S.Response seeHome = seeOther Url.home seeHomeWith :: Message -> Controller S.Response seeHomeWith message = seeOther $ withMessage message Url.home decodePolicy :: S.BodyPolicy decodePolicy = S.defaultBodyPolicy "/tmp/" 0 10240 10240 lookParameter :: String -> Controller (Maybe String) lookParameter = optional . S.look