packages feed

mysnapsession-example-0.2: clientcount/src/Site.hs

{-# LANGUAGE OverloadedStrings #-}

module Site (site) where

import Control.Applicative
import Snap.Extension.Heist
import Snap.Extension.Session
import Snap.SessionUtil
import Snap.Util.FileServe
import Snap.Types
import Text.Templating.Heist

import Data.ByteString.Char8 (ByteString)
import qualified Data.ByteString.Char8 as B

import Application

index :: App ()
index = do
    i <- getSession
    putSession (i+1)
    heistLocal (bindString "num" (B.pack $ show i)) $ render "index"

site :: App ()
site = inSession $
    ifTop index
    <|> fileServe "clientcount/resources/static"