packages feed

hack-frontend-happstack-2009.6.24: src/Test.hs

module Main where
 
import Happstack.Server
import Hack.Frontend.Happstack
import Hack.Handler.Happstack

import Hack.Contrib.Utils
import Hack.Contrib.Request hiding (content_type)
import Hack.Contrib.Response
import Hack.Contrib.Middleware.ContentType
import Hack.Contrib.Middleware.ContentLength
import Hack.Contrib.Middleware.ShowExceptions
import Hack.Contrib.Middleware.ShowStatus
import Hack.Contrib.Middleware.Static

import Hack.Contrib.Middleware.Lucky
import Hack.Contrib.Middleware.Lambda
import Hack.Contrib.Middleware.SimpleAccessLogger
import Hack.Contrib.Middleware.BounceFavicon
import Hack.Contrib.Middleware.ETag
import Hack.Contrib.Middleware.Inspect
import Hack.Contrib.Middleware.Debug
import qualified Hack.Contrib.Middleware.Head as H


import MPS
import Prelude hiding ((.))

import Data.Default


default_content_type = "text/plain; charset=UTF-8"

middleware_stack = 
  [  dummy_middleware
  
  -- filter
  ,  bounce_favicon

  -- setup
  --,  parse_multipart
  
  -- debug
  -- ,  inspect
  ,  debug (\e r -> e.inputs.print)
    
  -- completeness
  ,  content_length
  ,  content_type default_content_type
  -- ,  etag
  
  -- debuging
  ,  show_exceptions Nothing
  ,  show_status
  
  -- optimization
  -- ,  H.head
  
  -- log
  -- ,  simple_access_logger Nothing
  
  -- for fun
  ,  lucky
  ,  lambda
  
  -- static serve
  ,  static (Just "db/public") ["/theme", "/images", "/plugin", "/favicon.ico"]
  
  -- real app

  ]

impl = anyRequest $ ok $ toResponse "hello world"

app = use middleware_stack (serverPartToApp impl)

main = run app