module Web.Scotty.Trans.Lazy where
import Control.Monad (join)
import Control.Monad.IO.Class
import Data.Bifunctor (bimap)
import qualified Data.Text.Lazy as T
import Network.HTTP.Types (Status)
import qualified Web.Scotty.Action as Base
import Web.Scotty.Internal.Types
raise :: (MonadIO m) =>
T.Text
-> ActionT m a
raise :: forall (m :: * -> *) a. MonadIO m => Text -> ActionT m a
raise = forall (m :: * -> *) a. MonadIO m => Text -> ActionT m a
Base.raise forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text
T.toStrict
{-# DEPRECATED raise "Throw an exception instead" #-}
raiseStatus :: Monad m => Status -> T.Text -> ActionT m a
raiseStatus :: forall (m :: * -> *) a. Monad m => Status -> Text -> ActionT m a
raiseStatus Status
s = forall (m :: * -> *) a. Monad m => Status -> Text -> ActionT m a
Base.raiseStatus Status
s forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text
T.toStrict
{-# DEPRECATED raiseStatus "Use status, text, and finish instead" #-}
redirect :: (Monad m) => T.Text -> ActionT m a
redirect :: forall (m :: * -> *) a. Monad m => Text -> ActionT m a
redirect = forall (m :: * -> *) a. Monad m => Text -> ActionT m a
Base.redirect forall b c a. (b -> c) -> (a -> b) -> a -> c
. Text -> Text
T.toStrict
header :: (Monad m) => T.Text -> ActionT m (Maybe T.Text)
Text
h = forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> Text
T.fromStrict forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall (m :: * -> *). Monad m => Text -> ActionT m (Maybe Text)
Base.header (Text -> Text
T.toStrict Text
h)
headers :: (Monad m) => ActionT m [(T.Text, T.Text)]
= forall a b. (a -> b) -> [a] -> [b]
map (forall (m :: * -> *) a. Monad m => m (m a) -> m a
join forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> p a c -> p b d
bimap Text -> Text
T.fromStrict) forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> forall (m :: * -> *). Monad m => ActionT m [(Text, Text)]
Base.headers
addHeader :: MonadIO m => T.Text -> T.Text -> ActionT m ()
Text
k Text
v = forall (m :: * -> *). MonadIO m => Text -> Text -> ActionT m ()
Base.addHeader (Text -> Text
T.toStrict Text
k) (Text -> Text
T.toStrict Text
v)
setHeader :: MonadIO m => T.Text -> T.Text -> ActionT m ()
Text
k Text
v = forall (m :: * -> *). MonadIO m => Text -> Text -> ActionT m ()
Base.addHeader (Text -> Text
T.toStrict Text
k) (Text -> Text
T.toStrict Text
v)
text :: (MonadIO m) => T.Text -> ActionT m ()
text :: forall (m :: * -> *). MonadIO m => Text -> ActionT m ()
text = forall (m :: * -> *). MonadIO m => Text -> ActionT m ()
Base.textLazy
html :: (MonadIO m) => T.Text -> ActionT m ()
html :: forall (m :: * -> *). MonadIO m => Text -> ActionT m ()
html = forall (m :: * -> *). MonadIO m => Text -> ActionT m ()
Base.htmlLazy