lookupHeader/lookupHeaders

This commit is contained in:
Michael Snoyman 2013-05-30 08:31:24 +03:00
parent 8ff8dcb776
commit 772563c46b
2 changed files with 18 additions and 1 deletions

View File

@ -49,11 +49,13 @@ module Yesod.Core.Handler
, lookupPostParam
, lookupCookie
, lookupFile
, lookupHeader
-- **** Multi-lookup
, lookupGetParams
, lookupPostParams
, lookupCookies
, lookupFiles
, lookupHeaders
-- * Responses
-- ** Pure
, respond
@ -191,6 +193,7 @@ import Yesod.Routes.Class (Route)
import Control.Failure (failure)
import Blaze.ByteString.Builder (Builder)
import Safe (headMay)
import Data.CaseInsensitive (CI)
get :: MonadHandler m => m GHState
get = liftHandlerT $ HandlerT $ I.readIORef . handlerState
@ -800,6 +803,20 @@ languages = reqLangs `liftM` getRequest
lookup' :: Eq a => a -> [(a, b)] -> [b]
lookup' a = map snd . filter (\x -> a == fst x)
-- | Lookup a request header.
--
-- Since 1.2.2
lookupHeader :: MonadHandler m => CI S8.ByteString -> m (Maybe S8.ByteString)
lookupHeader = liftM listToMaybe . lookupHeaders
-- | Lookup a request header.
--
-- Since 1.2.2
lookupHeaders :: MonadHandler m => CI S8.ByteString -> m [S8.ByteString]
lookupHeaders key = do
req <- waiRequest
return $ lookup' key $ W.requestHeaders req
-- | Lookup for GET parameters.
lookupGetParams :: MonadHandler m => Text -> m [Text]
lookupGetParams pn = do

View File

@ -1,5 +1,5 @@
name: yesod-core
version: 1.2.1
version: 1.2.2
license: MIT
license-file: LICENSE
author: Michael Snoyman <michael@snoyman.com>