module Web.Routes.Nested.FileExtListener.Lucid where
import Web.Routes.Nested.FileExtListener.Types
import Data.Map
import qualified Lucid.Base as L
import Network.HTTP.Types (RequestHeaders,
Status, status200)
import Network.Wai
import Control.Monad.Writer
lucid :: Monad m =>
L.HtmlT m () -> FileExtListenerT Response m ()
lucid i = do
i' <- lift $ L.renderBST i
let r = responseLBS status200 [("Content-Type", "text/html")] i'
FileExtListenerT $ tell $
FileExts $ singleton Html r
lucidStatus :: Monad m =>
Status -> L.HtmlT m () -> FileExtListenerT Response m ()
lucidStatus s i = do
i' <- lift $ L.renderBST i
let r = responseLBS s [("Content-Type", "text/html")] i'
FileExtListenerT $ tell $
FileExts $ singleton Html r
lucidHeaders :: Monad m =>
RequestHeaders -> L.HtmlT m () -> FileExtListenerT Response m ()
lucidHeaders hs i = do
i' <- lift $ L.renderBST i
let r = responseLBS status200 hs i'
FileExtListenerT $ tell $
FileExts $ singleton Html r
lucidStatusHeaders :: Monad m =>
Status -> RequestHeaders -> L.HtmlT m () -> FileExtListenerT Response m ()
lucidStatusHeaders s hs i = do
i' <- lift $ L.renderBST i
let r = responseLBS s hs i'
FileExtListenerT $ tell $
FileExts $ singleton Html r
lucidOnly :: Monad m =>
L.HtmlT m () -> m Response
lucidOnly i = do
i' <- L.renderBST i
return $ responseLBS status200 [("Content-Type", "text/html")] i'
lucidOnlyStatus :: Monad m =>
Status -> L.HtmlT m () -> m Response
lucidOnlyStatus s i = do
i' <- L.renderBST i
return $ responseLBS s [("Content-Type", "text/html")] i'
lucidOnlyHeaders :: Monad m =>
RequestHeaders -> L.HtmlT m () -> m Response
lucidOnlyHeaders hs i = do
i' <- L.renderBST i
return $ responseLBS status200 hs i'
lucidOnlyStatusHeaders :: Monad m =>
Status -> RequestHeaders -> L.HtmlT m () -> m Response
lucidOnlyStatusHeaders s hs i = do
i' <- L.renderBST i
return $ responseLBS s hs i'