module Web.Routes.Nested.FileExtListener.ByteString where
import Web.Routes.Nested.FileExtListener.Types
import qualified Data.ByteString.Lazy as B
import Data.Map
import Network.HTTP.Types (RequestHeaders,
Status, status200)
import Network.Wai
import qualified Network.Wai.Util as U
import Control.Monad.Writer
bytestring :: Monad m => FileExt -> RequestHeaders -> B.ByteString -> FileExtListenerT Response m ()
bytestring e = bytestringStatus e status200
bytestringWith :: Monad m => (Response -> Response) -> FileExt -> RequestHeaders -> B.ByteString -> FileExtListenerT Response m ()
bytestringWith f e = bytestringStatusWith f e status200
bytestringStatus :: Monad m => FileExt -> Status -> RequestHeaders -> B.ByteString
-> FileExtListenerT Response m ()
bytestringStatus = bytestringStatusWith id
bytestringStatusWith :: Monad m =>
(Response -> Response)
-> FileExt -> Status -> RequestHeaders -> B.ByteString
-> FileExtListenerT Response m ()
bytestringStatusWith f e s hs i = do
r <- lift $ U.bytestring s hs i
FileExtListenerT $ tell $
FileExts $ singleton e $ f r
bytestringOnly :: RequestHeaders -> B.ByteString -> Response
bytestringOnly = bytestringOnlyStatus status200
bytestringOnlyStatus :: Status -> RequestHeaders -> B.ByteString -> Response
bytestringOnlyStatus = responseLBS