bein-0.3: Bein/Web/Routing.hs
module Bein.Web.Routing where
import Data.Monoid
import Bein.Web.Types
import Bein.Web.Commands
import Bein.Web.Pages.Index
import Bein.Web.Pages.Object
import Bein.Web.Pages.Settings
import Bein.Web.Pages.SignOut
import Bein.Web.Pages.New
import Happstack.Server
import Control.Monad.Trans
import System.FilePath
import Bein.Web.Pages.Login
routing :: BeinServerPart Response
routing = mconcat [
nullDir >> index,
dir "login" $ login,
dir "settings" $ settings,
guardObject $ object,
exactDir "signout" $ signOut,
dir "new" $ newObject,
staticData
]
staticData :: BeinServerPart Response
staticData = mconcat [ staticFile "default.css" "text/css; charset=utf-8" ]
-- staticFile "jquery.js" "text/javascript",
-- staticFile "script.js" "text/javascript" ]
where staticFile dirName contType = dir dirName $ do
d <- lift $ configField static_content_directory
setHeaderM "Content-Type" contType
fileServe [] (joinPath [d,dirName])