bird-0.0.8: src/Bird/BirdRouter.hs
module Bird.BirdRouter(
BirdRouter
, body
, status
, param
) where
import Control.Monad.State
import Control.Monad.Reader
import Data.Maybe
import Bird.Reply
import Bird.Request
type BirdRouter = StateT Reply (ReaderT Request IO)
body b = do
reply <- get
put $ reply { replyBody = b }
status code = do
reply <- get
put $ reply { replyStatus = code }
param paramName = do
request <- ask
return $ maybe Nothing id (lookup paramName $ params request)