From 772563c46b4250e892c0611ed3a6cb44d1551a36 Mon Sep 17 00:00:00 2001 From: Michael Snoyman Date: Thu, 30 May 2013 08:31:24 +0300 Subject: [PATCH] lookupHeader/lookupHeaders --- yesod-core/Yesod/Core/Handler.hs | 17 +++++++++++++++++ yesod-core/yesod-core.cabal | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/yesod-core/Yesod/Core/Handler.hs b/yesod-core/Yesod/Core/Handler.hs index 3fd3cc91..f3b1799b 100644 --- a/yesod-core/Yesod/Core/Handler.hs +++ b/yesod-core/Yesod/Core/Handler.hs @@ -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 diff --git a/yesod-core/yesod-core.cabal b/yesod-core/yesod-core.cabal index 9b9126de..177e3783 100644 --- a/yesod-core/yesod-core.cabal +++ b/yesod-core/yesod-core.cabal @@ -1,5 +1,5 @@ name: yesod-core -version: 1.2.1 +version: 1.2.2 license: MIT license-file: LICENSE author: Michael Snoyman