packages feed

wai-digestive-functors 0.2 → 0.3

raw patch · 2 files changed

+33/−2 lines, 2 filesdep +transformers

Dependencies added: transformers

Files

Network/Wai/Digestive.hs view
@@ -1,11 +1,17 @@+{-# LANGUAGE CPP #-} -- | Helpers to bind 'digestive-functors' onto a 'wai' request module Network.Wai.Digestive (queryFormEnv, bodyFormEnv, bodyFormEnv_, requestFormEnv, requestFormEnv_) where  import Control.Arrow (second)+#if MIN_VERSION_wai(2,0,0)+import Control.Monad.IO.Class (MonadIO, liftIO)+import Control.Monad.Trans.Resource (ResourceT, getInternalState)+#else+import Control.Monad.Trans.Resource (ResourceT)+#endif import Text.Digestive (Env, FormInput(..)) import Network.HTTP.Types.QueryLike (QueryLike, toQuery, toQueryValue) import Network.Wai (Request, queryString)-import Control.Monad.Trans.Resource (ResourceT) import Network.Wai.Util (queryLookupAll) import Network.Wai.Parse (parseRequestBody, BackEnd, File, fileContent, tempFileBackEnd) import Data.Text (Text)@@ -26,28 +32,52 @@ 	qs' = toQuery qs  -- | Build an 'Text.Digestive.Types.Env' from a request body+#if MIN_VERSION_wai(2,0,0)+bodyFormEnv :: (Monad m, MonadIO io) => BackEnd FilePath -> Request -> io (Env m)+bodyFormEnv backend req = liftIO $ do+#else bodyFormEnv :: (Monad m) => BackEnd FilePath -> Request -> ResourceT IO (Env m) bodyFormEnv backend req = do+#endif 	(query, files) <- parseRequestBody backend req 	return $ queryFormEnv (toQuery query ++ toQuery (FileQuery files))  -- | Build an 'Text.Digestive.Types.Env' from a request body -- -- Uses a default temporary file 'Network.Wai.Parse.BackEnd'+#if MIN_VERSION_wai(2,0,0)+bodyFormEnv_ :: (Monad m, MonadIO io) => Request -> ResourceT io (Env m)+bodyFormEnv_ req = do+	st <- getInternalState+	bodyFormEnv (tempFileBackEnd st) req+#else bodyFormEnv_ :: (Monad m) => Request -> ResourceT IO (Env m) bodyFormEnv_ = bodyFormEnv tempFileBackEnd+#endif  -- | Build an 'Text.Digestive.Types.Env' from request body and query string+#if MIN_VERSION_wai(2,0,0)+requestFormEnv :: (Monad m, MonadIO io) => BackEnd FilePath -> Request -> io (Env m)+requestFormEnv backend req = liftIO $ do+#else requestFormEnv :: (Monad m) => BackEnd FilePath -> Request -> ResourceT IO (Env m) requestFormEnv backend req = do+#endif 	(query, files) <- parseRequestBody backend req 	return $ queryFormEnv (toQuery query ++ toQuery (FileQuery files) ++ queryString req)  -- | Build an 'Text.Digestive.Types.Env' from request body and query string -- -- Uses a default temporary file 'Network.Wai.Parse.BackEnd'+#if MIN_VERSION_wai(2,0,0)+requestFormEnv_ :: (Monad m, MonadIO io) => Request -> ResourceT io (Env m)+requestFormEnv_ req = do+	st <- getInternalState+	requestFormEnv (tempFileBackEnd st) req+#else requestFormEnv_ :: (Monad m) => Request -> ResourceT IO (Env m) requestFormEnv_ = requestFormEnv tempFileBackEnd+#endif  -- | Format form paths just like PHP/Rails pathToText :: [Text] -> Text
wai-digestive-functors.cabal view
@@ -1,5 +1,5 @@ name:            wai-digestive-functors-version:         0.2+version:         0.3 cabal-version:   >= 1.8 license:         OtherLicense license-file:    COPYING@@ -30,6 +30,7 @@                 wai-extra,                 wai-util >= 0.6,                 resourcet,+                transformers,                 text,                 http-types,                 digestive-functors