trasa-server 0.5.2 → 0.5.3
raw patch · 2 files changed
+7/−3 lines, 2 files
Files
- src/Trasa/Server.hs +6/−2
- trasa-server.cabal +1/−1
src/Trasa/Server.hs view
@@ -33,6 +33,7 @@ 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 @@ -41,6 +42,7 @@ data TrasaEnv = TrasaEnv { trasaHeaders :: Headers , trasaQueryString :: QueryString+ , trasaRequestBodyType :: Maybe Wai.RequestBodyType } newtype TrasaT m a = TrasaT@@ -74,8 +76,9 @@ :: TrasaT m a -> M.Map (CI BS.ByteString) T.Text -- ^ Headers -> QueryString -- ^ Query string parameters+ -> Maybe Wai.RequestBodyType -- ^ Request body type from @wai-extra@ -> m (Either TrasaErr a, M.Map (CI BS.ByteString) T.Text)-runTrasaT trasa headers queryStrings = (flip runReaderT (TrasaEnv headers queryStrings) . flip runStateT M.empty . runExceptT . unTrasaT) trasa+runTrasaT trasa headers queryStrings mrequestBodyType = (flip runReaderT (TrasaEnv headers queryStrings mrequestBodyType) . 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@@ -105,7 +108,8 @@ let queryStrings = decodeQuery (Wai.queryString req) url = Url (Wai.pathInfo req) queryStrings dispatch = dispatchWith toMeta makeResponse madeRouter method accepts url content- runTrasaT dispatch headers queryStrings >>= \case+ mrequestBodyType = Wai.getRequestBodyType req+ runTrasaT dispatch headers queryStrings mrequestBodyType >>= \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.2+ 0.5.3 synopsis: Type safe web server description: