packages feed

happstack-0.3.1: templates/project/src/App/Control.hs

{-# LANGUAGE FlexibleContexts, FlexibleInstances, MultiParamTypeClasses #-}
module App.Control (appHandler) where

import App.View
import Control.Monad(msum)
import Control.Monad.Trans(liftIO, MonadIO)
import GuestBook
import Happstack.Server
import System.Time (getClockTime)

appHandler :: ServerPartT IO Response
appHandler = msum
  [ methodM GET >> seeOther "/entries" (toResponse ()) -- matches /
  , renderFromBody "GuestBook" =<< guestBookHandler
  , dir "README" getREADME                             -- StringTemplate example
  , fileServe ["index.html"] "public"                  -- static files
  ]

getREADME :: ServerPartT IO Response
getREADME = 
    methodM GET >> liftIO getClockTime >>= renderREADME