From 7e2ca33ed53ceb7ed5978b6c02b86d513f4a6724 Mon Sep 17 00:00:00 2001 From: ncaq Date: Tue, 17 Apr 2018 13:58:15 +0900 Subject: [PATCH] added: fileSourceByteString This function is to get `FileInfo` raw body. --- yesod-core/Yesod/Core/Handler.hs | 13 ++++++++++++- yesod-core/yesod-core.cabal | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index 5b9cb3b7..cad9e2a8 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -47,6 +47,7 @@ module Yesod.Core.Handler , fileName , fileContentType , fileSource + , fileSourceByteString , fileMove -- *** Convenience functions , languages @@ -252,7 +253,7 @@ import Data.CaseInsensitive (CI, original) import qualified Data.Conduit.List as CL import Control.Monad.Trans.Resource (MonadResource, InternalState, runResourceT, withInternalState, getInternalState, liftResourceT, resourceForkIO) import qualified System.PosixCompat.Files as PC -import Data.Conduit (ConduitT, transPipe, Flush (Flush), yield, Void) +import Data.Conduit (ConduitT, connect, transPipe, Flush (Flush), yield, Void) import qualified Yesod.Core.TypeCache as Cache import qualified Data.Word8 as W8 import qualified Data.Foldable as Fold @@ -1360,6 +1361,16 @@ rawRequestBody = do fileSource :: MonadResource m => FileInfo -> ConduitT () S.ByteString m () fileSource = transPipe liftResourceT . fileSourceRaw +-- | Strict `ByteString` body from `FileInfo`. +-- This function blocking while read file. +-- +-- > do +-- > fileByteString <- fileSourceByteString fileInfo +-- +-- @since 1.6.4 +fileSourceByteString :: MonadResource m => FileInfo -> m S.ByteString +fileSourceByteString fileInfo = fileSource fileInfo `connect` CL.foldMap id + -- | Provide a pure value for the response body. -- -- > respond ct = return . TypedContent ct . toContent diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index c61e7aad..f9788e6d 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -1,5 +1,5 @@ name: yesod-core -version: 1.6.3 +version: 1.6.4 license: MIT license-file: LICENSE author: Michael Snoyman