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