{-# LANGUAGE OverloadedStrings #-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE PackageImports #-}

module Site ( app ) where

import               Data.ByteString     (ByteString)
import               Snap.Snaplet
import               Snap.Snaplet.Fay
import               Snap.Snaplet.Heist
import               Snap.Util.FileServe
import  "base"       Prelude

----------------------------------------------------------
import           Application

routes :: [(ByteString, AppHandler ())]
routes = [
           ("/fay",    with fay fayServe)
         , ("/static", serveDirectory "static")
         ]

app :: SnapletInit App App
app = makeSnaplet "app" "" Nothing $ do
    h <- nestSnaplet "" heist ( heistInit "templates" )
    f <- nestSnaplet "fay" fay initFay
    addRoutes routes
    return $ App h f