packages feed

wai-extra 0.3.1 → 0.3.2

raw patch · 3 files changed

+35/−2 lines, 3 files

Files

+ 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