packages feed

bamboo-2009.4.26: src/Bamboo.hs

{-# LANGUAGE NoMonomorphismRestriction#-}
{-# LANGUAGE NoImplicitPrelude #-}
{-# LANGUAGE QuasiQuotes #-}

module Bamboo
  (
    module Bamboo.Controller.Application,
    bamboo
  ) where

import Bamboo.Controller.Application (paths)

import Hack.Utils
import Hack
import Hack.Contrib.RawRouter
import Hack.Contrib.ContentType
import Hack.Contrib.ContentSize
import Hack.Contrib.SimpleAccessLogger
import Hack.Contrib.ShowExceptions
import Hack.Contrib.File
import Hack.Contrib.Static
import Hack.Contrib.ShowStatus
import Hack.Contrib.Lambda

import qualified Hack.Contrib.Head as H

import Bamboo.Helper.Env hiding (body, not_found, (>))

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

middleware_stack = 
  [  dummy_middleware
  
  -- completeness
  ,  content_size
  ,  content_type default_content_type
  
  -- debuging
  ,  show_exceptions Nothing
  ,  show_status
  
  -- optimization
  ,  H.head

  -- logger
  -- ,  simple_access_logger Nothing
    
  -- dispatch
  -- static serve
  ,  lambda
  ,  static (Just "db/public") ["/theme", "/images", "/plugin", "/favicon.ico"]
  
  -- real app
  ,  route paths
  ]
  

app = dummy_app .use middleware_stack

bamboo :: Application
bamboo = app