on master help sign in
Repopulating the request body from the lazy list created.
commit6e0a49d8ef2fea1f7a9cebc801577697d86b21a4 authorLyndon Maydwell <maydwell@gmail.com> dateThu 19 Apr 2012, 13:51 (14 years ago) parentd748ce6
1 file changed+3−2
wai-extra/Network/Wai/Middleware/MethodOverridePost.hs+3−2
wai-extra/Network/Wai/Middleware/MethodOverridePost.hs+3−2
@@ -7,6 +7,7 @@ import Data.Monoid (mconcat)
77import Data.Conduit.Lazy (lazyConsume)
88import Network.HTTP.Types (parseQuery)
99import Control.Monad.Trans.Resource (ResourceT)
10+import Data.Conduit.List (sourceList)
1011
1112methodOverridePost :: Middleware
1213methodOverridePost app req = case lookup "Content-Type" (requestHeaders req) of
@@ -16,5 +17,5 @@ methodOverridePost app req = case lookup "Content-Type" (requestHeaders req) of
1617setPost :: Request -> ResourceT IO Request
1718setPost req = do
1819 body <- lazyConsume (requestBody req)
19− case parseQuery (mconcat body) of (("_method", Just newmethod):_) -> return $ req {requestMethod = newmethod}
20− _ -> return req
20+ case parseQuery (mconcat body) of (("_method", Just newmethod):_) -> return $ req {requestBody = sourceList body, requestMethod = newmethod}
21+ _ -> return $ req {requestBody = sourceList body}