salvia-0.0.5: src/Network/Salvia/Handlers/Banner.hs
module Network.Salvia.Handlers.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