trasa-server 0.5.1 → 0.5.2
raw patch · 2 files changed
+5/−12 lines, 2 files
Files
- src/Trasa/Server.hs +4/−11
- trasa-server.cabal +1/−1
src/Trasa/Server.hs view
@@ -5,7 +5,8 @@ {-# LANGUAGE GeneralizedNewtypeDeriving #-} {-# LANGUAGE ScopedTypeVariables #-} -{-# OPTIONS_GHC -Wall -Werror #-}+{-# OPTIONS_GHC -Wall -Werror -Wwarn=deprecations #-}+ module Trasa.Server ( TrasaT , TrasaEnv(..)@@ -14,7 +15,6 @@ , serveWith ) where - import Control.Applicative (liftA2, Alternative(..)) import Control.Monad (join, MonadPlus(..)) import Control.Monad.Except (ExceptT,runExceptT,mapExceptT,MonadError(..),MonadIO(..))@@ -33,7 +33,6 @@ import qualified Network.HTTP.Media.RenderHeader as N import qualified Network.HTTP.Types.Status as N import qualified Network.Wai as Wai-import qualified Network.Wai.Parse as Wai import Trasa.Core @@ -42,8 +41,6 @@ data TrasaEnv = TrasaEnv { trasaHeaders :: Headers , trasaQueryString :: QueryString- , trasaRequestBody :: BS.ByteString- , trasaRequestBodyType :: Maybe Wai.RequestBodyType } newtype TrasaT m a = TrasaT@@ -77,10 +74,8 @@ :: TrasaT m a -> M.Map (CI BS.ByteString) T.Text -- ^ Headers -> QueryString -- ^ Query string parameters- -> BS.ByteString -- ^ Request body- -> Maybe Wai.RequestBodyType -- ^ Request body type from @wai-extra@ -> m (Either TrasaErr a, M.Map (CI BS.ByteString) T.Text)-runTrasaT trasa headers queryStrings requestBody mrequestBodyType = (flip runReaderT (TrasaEnv headers queryStrings requestBody mrequestBodyType) . flip runStateT M.empty . runExceptT . unTrasaT) trasa+runTrasaT trasa headers queryStrings = (flip runReaderT (TrasaEnv headers queryStrings) . flip runStateT M.empty . runExceptT . unTrasaT) trasa mapTrasaT :: (forall x. m x -> n x) -> TrasaT m a -> TrasaT n a mapTrasaT eta = TrasaT . mapExceptT (mapStateT (mapReaderT eta)) . unTrasaT@@ -107,12 +102,10 @@ Just accepts -> do content <- for (M.lookup hContentType headers >>= N.parseAccept . TE.encodeUtf8) $ \typ -> Content typ <$> Wai.strictRequestBody req- requestBody <- Wai.getRequestBodyChunk req let queryStrings = decodeQuery (Wai.queryString req) url = Url (Wai.pathInfo req) queryStrings dispatch = dispatchWith toMeta makeResponse madeRouter method accepts url content- mrequestBodyType = Wai.getRequestBodyType req- runTrasaT dispatch headers queryStrings requestBody mrequestBodyType >>= \case+ runTrasaT dispatch headers queryStrings >>= \case (resErr,newHeaders) -> case join resErr of Left (TrasaErr stat errBody) -> respond (Wai.responseLBS stat (encodeHeaders newHeaders) errBody)
trasa-server.cabal view
@@ -2,7 +2,7 @@ name: trasa-server version:- 0.5.1+ 0.5.2 synopsis: Type safe web server description: