wai-extra 0.3.1 → 0.3.2
raw patch · 3 files changed
+35/−2 lines, 3 files
Files
- Network/Wai/Middleware/AcceptOverride.hs +26/−0
- Network/Wai/Middleware/Debug.hs +7/−1
- wai-extra.cabal +2/−1
+ Network/Wai/Middleware/AcceptOverride.hs view
@@ -0,0 +1,26 @@+{-# LANGUAGE OverloadedStrings #-}++module Network.Wai.Middleware.AcceptOverride+ ( acceptOverride+ ) where++import Network.Wai+import Network.Wai.Parse (parseQueryString)+import qualified Data.ByteString.Char8 as B8++acceptOverride :: Middleware+acceptOverride app req =+ app req'+ where+ req' =+ case lookup "_accept" $ parseQueryString $ queryString req of+ Nothing -> req+ Just a -> req { requestHeaders = changeVal "Accept" (B8.unpack a) $ requestHeaders req}++changeVal :: Eq a+ => a+ -> String+ -> [(a, B8.ByteString)]+ -> [(a, B8.ByteString)]+changeVal key val old = (key, B8.pack val)+ : filter (\(k, _) -> k /= key) old
Network/Wai/Middleware/Debug.hs view
@@ -1,9 +1,11 @@+{-# LANGUAGE OverloadedStrings #-} module Network.Wai.Middleware.Debug (debug) where -import Network.Wai (Middleware, requestMethod, pathInfo)+import Network.Wai (Middleware, requestMethod, requestHeaders, pathInfo, queryString) import Data.ByteString.Char8 (unpack) import System.IO (hPutStrLn, stderr) import Control.Monad.IO.Class (liftIO)+import Data.Maybe -- | Prints a message to 'stderr' for each request. debug :: Middleware@@ -12,5 +14,9 @@ [ unpack $ requestMethod req , " " , unpack $ pathInfo req+ , unpack $ queryString req+ , "\n"+ , (++) "Accept: " $ unpack $ fromMaybe "" $ lookup "Accept" $ requestHeaders req+ , "\n" ] app req
wai-extra.cabal view
@@ -1,5 +1,5 @@ Name: wai-extra-Version: 0.3.1+Version: 0.3.2 Synopsis: Provides some basic WAI handlers and middleware. Description: The goal here is to provide common features without many dependencies. License: BSD3@@ -26,6 +26,7 @@ enumerator >= 0.4 && < 0.5, blaze-builder >= 0.2.1.3 && < 0.3 Exposed-modules: Network.Wai.Handler.CGI+ Network.Wai.Middleware.AcceptOverride Network.Wai.Middleware.Autohead Network.Wai.Middleware.CleanPath Network.Wai.Middleware.Debug