packages feed

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