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 = Text -> ActionT m a
forall (m :: * -> *) a. MonadIO m => Text -> ActionT m a
Base.raise (Text -> ActionT m a) -> (Text -> Text) -> Text -> ActionT m a
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 = Status -> Text -> ActionT m a
forall (m :: * -> *) a. Monad m => Status -> Text -> ActionT m a
Base.raiseStatus Status
s (Text -> ActionT m a) -> (Text -> Text) -> Text -> ActionT m a
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 = Text -> ActionT m a
forall (m :: * -> *) a. Monad m => Text -> ActionT m a
Base.redirect (Text -> ActionT m a) -> (Text -> Text) -> Text -> ActionT m a
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 = (Text -> Text) -> Maybe Text -> Maybe Text
forall a b. (a -> b) -> Maybe a -> Maybe b
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
fmap Text -> Text
T.fromStrict (Maybe Text -> Maybe Text)
-> ActionT m (Maybe Text) -> ActionT m (Maybe Text)
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> Text -> ActionT m (Maybe Text)
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)]
= ((Text, Text) -> (Text, Text)) -> [(Text, Text)] -> [(Text, Text)]
forall a b. (a -> b) -> [a] -> [b]
map (((Text -> Text) -> (Text -> Text) -> (Text, Text) -> (Text, Text))
-> (Text -> Text) -> (Text, Text) -> (Text, Text)
forall (m :: * -> *) a. Monad m => m (m a) -> m a
join (Text -> Text) -> (Text -> Text) -> (Text, Text) -> (Text, Text)
forall a b c d. (a -> b) -> (c -> d) -> (a, c) -> (b, d)
forall (p :: * -> * -> *) a b c d.
Bifunctor p =>
(a -> b) -> (c -> d) -> p a c -> p b d
bimap Text -> Text
T.fromStrict) ([(Text, Text)] -> [(Text, Text)])
-> ActionT m [(Text, Text)] -> ActionT m [(Text, Text)]
forall (f :: * -> *) a b. Functor f => (a -> b) -> f a -> f b
<$> ActionT m [(Text, Text)]
forall (m :: * -> *). Monad m => ActionT m [(Text, Text)]
Base.headers
addHeader :: MonadIO m => T.Text -> T.Text -> ActionT m ()
Text
k Text
v = Text -> Text -> ActionT m ()
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 = Text -> Text -> ActionT m ()
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 = Text -> ActionT m ()
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 = Text -> ActionT m ()
forall (m :: * -> *). MonadIO m => Text -> ActionT m ()
Base.htmlLazy