Deprecate setHeader, provide addHeader #524

This commit is contained in:
Michael Snoyman 2013-04-03 17:28:44 +03:00
parent 97f7979956
commit e663e84caf
3 changed files with 15 additions and 7 deletions

View File

@ -270,7 +270,7 @@ class RenderRoute site => Yesod site where
-- Since 1.2.0
defaultYesodMiddleware :: Yesod site => HandlerT site IO res -> HandlerT site IO res
defaultYesodMiddleware handler = do
setHeader "Vary" "Accept, Accept-Language"
addHeader "Vary" "Accept, Accept-Language"
authorizationCheck
handler

View File

@ -94,6 +94,7 @@ module Yesod.Core.Handler
, setCookie
, getExpires
, deleteCookie
, addHeader
, setHeader
, setLanguage
-- ** Content caching and expiration
@ -539,7 +540,7 @@ invalidArgsI msg = do
-- | Set the cookie on the client.
setCookie :: MonadHandler m => SetCookie -> m ()
setCookie = addHeader . AddCookie
setCookie = addHeaderInternal . AddCookie
-- | Helper function for setCookieExpires value
getExpires :: MonadIO m
@ -558,7 +559,7 @@ deleteCookie :: MonadHandler m
=> Text -- ^ key
-> Text -- ^ path
-> m ()
deleteCookie a = addHeader . DeleteCookie (encodeUtf8 a) . encodeUtf8
deleteCookie a = addHeaderInternal . DeleteCookie (encodeUtf8 a) . encodeUtf8
-- | Set the language in the user session. Will show up in 'languages' on the
@ -570,8 +571,15 @@ setLanguage = setSession langKey
--
-- Note that, while the data type used here is 'Text', you must provide only
-- ASCII value to be HTTP compliant.
--
-- Since 1.2.0
addHeader :: MonadHandler m => Text -> Text -> m ()
addHeader a = addHeaderInternal . Header (encodeUtf8 a) . encodeUtf8
-- | Deprecated synonym for addHeader.
setHeader :: MonadHandler m => Text -> Text -> m ()
setHeader a = addHeader . Header (encodeUtf8 a) . encodeUtf8
setHeader = addHeader
{-# DEPRECATED setHeader "Please use addHeader instead" #-}
-- | Set the Cache-Control header to indicate this response should be cached
-- for the given number of seconds.
@ -628,8 +636,8 @@ modSession :: (SessionMap -> SessionMap) -> GHState -> GHState
modSession f x = x { ghsSession = f $ ghsSession x }
-- | Internal use only, not to be confused with 'setHeader'.
addHeader :: MonadHandler m => Header -> m ()
addHeader = tell . Endo . (:)
addHeaderInternal :: MonadHandler m => Header -> m ()
addHeaderInternal = tell . Endo . (:)
-- | Some value which can be turned into a URL for redirects.
class RedirectUrl master a where

View File

@ -26,7 +26,7 @@ getRootR = error "FOOBAR" >> return ()
getRedirR :: Handler ()
getRedirR = do
setHeader "foo" "bar"
addHeader "foo" "bar"
redirectWith status301 RootR
exceptionsTest :: Spec