salvia-0.1: src/Network/Salvia/Handler/Banner.hs
module Network.Salvia.Handler.Banner (hBanner) where
import Control.Monad.State
import Data.Record.Label
import Data.Time.Clock (getCurrentTime)
import Data.Time.Format (formatTime)
import Data.Time.LocalTime (getCurrentTimeZone, utcToLocalTime)
import Network.Protocol.Http
import Network.Salvia.Httpd
import System.Locale (defaultTimeLocale)
{- |
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 sv = do
dt <- lift $ do
zone <- getCurrentTimeZone
time <- liftM (utcToLocalTime zone) getCurrentTime
return $ formatTime defaultTimeLocale "%a, %d %b %Y %H:%M:%S %Z" time
enterM response $ do
setM date dt
setM server sv