lucienne-0.0.1: Lucienne/Controller/Util.hs
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