salvia-0.0.4: src/Network/Salvia/Handlers/Banner.hs
module Network.Salvia.Handlers.Banner (hBanner) where
import Control.Monad.State
import Data.Time.Clock (getCurrentTime)
import Data.Time.LocalTime (getCurrentTimeZone, utcToLocalTime)
import Data.Time.Format (formatTime)
import System.Locale (defaultTimeLocale)
import Network.Salvia.Httpd
import Network.Protocol.Http
-- | The 'hBanner' handler adds the current date-/timestamp and a custom server
-- name to the response headers.
hBanner ::
String -- ^ The HTTP server name.
-> Handler ()
hBanner server = do
date <- lift $ do
zone <- getCurrentTimeZone
time <- liftM (utcToLocalTime zone) getCurrentTime
return $ formatTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %Z" time
modResponse
$ setDate date
. setServer server