packages feed

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

{-# LANGUAGE OverloadedStrings #-}

module Site (site) where

import Paths_mysnapsession_example

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

import qualified Data.Text as T

import Application

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

site :: App ()
site = do
    sPath    <- liftIO $ getDataFileName "clientcount/resources/static"
    inSession $
        ifTop index
        <|> fileServe sPath