wai-util 0.2 → 0.3
raw patch · 2 files changed
+12/−5 lines, 2 files
Files
- Network/Wai/Util.hs +11/−4
- wai-util.cabal +1/−1
Network/Wai/Util.hs view
@@ -27,10 +27,11 @@ import qualified Blaze.ByteString.Builder.Char.Utf8 as Builder import qualified Data.Aeson as Aeson import qualified Data.Text.Encoding as T+import qualified Data.Text.Lazy.Builder as TL import qualified Data.CaseInsensitive as CI -- | Build an Application that supports multiple Accept types (Content Negotiation)-handleAcceptTypes :: (MonadIO m) => [(String, m Response)] -> Request -> m Response+handleAcceptTypes :: (Monad m) => [(String, m Response)] -> Request -> m Response handleAcceptTypes handlers req = fromMaybe notAcceptable handler where@@ -74,19 +75,25 @@ replaceHeader' (n, v) = ((n,v):) . filter ((/=n) . fst) -- | Smart constructor to build a 'Response' from a 'String'-string :: (MonadIO m) => Status -> ResponseHeaders -> String -> m Response+string :: (Monad m) => Status -> ResponseHeaders -> String -> m Response string status headers = return . defHeader defCT . ResponseBuilder status headers . Builder.fromString where Just defCT = stringHeader ("Content-Type", "text/plain; charset=utf-8") -- | Smart constructor to build a 'Response' from a 'Text'-text :: (MonadIO m) => Status -> ResponseHeaders -> Text -> m Response+text :: (Monad m) => Status -> ResponseHeaders -> Text -> m Response text status headers = return . defHeader defCT . ResponseBuilder status headers . Builder.fromText where Just defCT = stringHeader ("Content-Type", "text/plain; charset=utf-8") +-- | Smart constructor to build a 'Response' from a 'Data.Text.Lazy.Builder.Builder'+textBuilder :: (Monad m) => Status -> ResponseHeaders -> TL.Builder -> m Response+textBuilder status headers = return . defHeader defCT . ResponseBuilder status headers . Builder.fromLazyText . TL.toLazyText+ where+ Just defCT = stringHeader ("Content-Type", "text/plain; charset=utf-8")+ -- | Smart constructor to build a JSON 'Response' using Aeson-json :: (MonadIO m, Aeson.ToJSON a) => Status -> ResponseHeaders -> a -> m Response+json :: (Monad m, Aeson.ToJSON a) => Status -> ResponseHeaders -> a -> m Response json status headers = return . defHeader defCT . responseLBS status headers . Aeson.encode . Aeson.toJSON where Just defCT = stringHeader ("Content-Type", "application/json; charset=utf-8")
wai-util.cabal view
@@ -1,5 +1,5 @@ name: wai-util-version: 0.2+version: 0.3 cabal-version: >= 1.8 license: OtherLicense license-file: COPYING