From 0f1637a1aa1d3f0726a7f210cab633248fd3093f Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 14 Mar 2013 07:35:09 +0200 Subject: [PATCH] Implemented rawRequestBody --- yesod-core/Yesod/Core/Handler.hs | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index ee673632..e36109a1 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -137,6 +137,8 @@ import Control.Monad.Trans.Resource (MonadResource, liftResourceT) import qualified Network.HTTP.Types as H import qualified Network.Wai as W +import Control.Monad.Trans.Class (lift) +import Data.Conduit (transPipe) import qualified Data.Text as T import Data.Text.Encoding (decodeUtf8With, encodeUtf8) @@ -883,5 +885,7 @@ provideRepType ct handler = -- | Stream in the raw request body without any parsing. -- -- Since 1.2.0 -rawRequestBody :: Source m S.ByteString -rawRequestBody = error "rawRequestBody" +rawRequestBody :: (HandlerReader m, MonadResource m) => Source m S.ByteString +rawRequestBody = do + req <- lift waiRequest + transPipe liftResourceT $ W.requestBody req