packages feed

engine-io 1.0.2 → 1.1.0

raw patch · 3 files changed

+19/−16 lines, 3 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

- Network.EngineIO: srvSetContentType :: ServerAPI m -> ByteString -> m ()
- Network.EngineIO: srvSetResponseCode :: ServerAPI m -> Int -> m ()
- Network.EngineIO: srvWriteBuilder :: ServerAPI m -> Builder -> m ()
+ Network.EngineIO: srvTerminateWithResponse :: ServerAPI m -> Int -> ByteString -> Builder -> forall a. m a
- Network.EngineIO: ServerAPI :: m (HashMap ByteString [ByteString]) -> (Builder -> m ()) -> (ByteString -> m ()) -> (forall a. Parser a -> m a) -> m ByteString -> (ServerApp -> m ()) -> (Int -> m ()) -> ServerAPI m
+ Network.EngineIO: ServerAPI :: m (HashMap ByteString [ByteString]) -> (Int -> ByteString -> Builder -> forall a. m a) -> (forall a. Parser a -> m a) -> m ByteString -> (ServerApp -> m ()) -> ServerAPI m

Files

Changelog.md view
@@ -1,3 +1,12 @@+## 1.1.0++* The `ServerAPI` functions `srvWriteBuilder`, `srvSetContentType` and+  `srvSetResponseCode` have been merged into a single function:+  `srvTerminateWithResponse`. This should allow `ServerAPI` to be provided for+  Yesod.++  Thanks to Tim Baumann (@timjb) for this change.+ ## 1.0.2  * The `ping` thread spawned by `websockets` is now disabled, as it has been
engine-io.cabal view
@@ -1,5 +1,5 @@ name: engine-io-version: 1.0.2+version: 1.1.0 synopsis: A Haskell implementation of Engine.IO homepage: http://github.com/ocharles/engine.io license: BSD3
src/Network/EngineIO.hs view
@@ -324,11 +324,10 @@     -- ^ Retrieve the 'HashMap.HashMap' of query parameters in the request path     -- to their zero-or-more values. -  , srvWriteBuilder :: Builder.Builder -> m ()-    -- ^ Write a 'Builder.Bulider' to the response.--  , srvSetContentType :: BS.ByteString -> m ()-    -- ^ Set the @Content-Type@ header of the response.+  , srvTerminateWithResponse :: Int -> BS.ByteString -> Builder.Builder -> forall a . m a+    -- ^ Send a response with the given status code, content type and body. This+    -- should also terminate the web request entirely, such that further actions+    -- in @m@ have no effect.    , srvParseRequestBody :: forall a. Attoparsec.Parser a -> m a     -- ^ Run a 'Attoparsec.Parser' against the request body.@@ -340,8 +339,6 @@   , srvRunWebSocket :: WebSockets.ServerApp -> m ()     -- ^ Upgrade the current connection to run a WebSocket action. -  , srvSetResponseCode :: Int -> m ()-    -- ^ Set the response code of the response.   }  @@ -604,10 +601,9 @@   ---------------------------------------------------------------------------------writeBytes :: Monad m => ServerAPI m -> Builder.Builder -> m ()+writeBytes :: Monad m => ServerAPI m -> Builder.Builder -> m a writeBytes ServerAPI {..} builder = do-  srvWriteBuilder builder-  srvSetContentType "application/octet-stream"+  srvTerminateWithResponse 200 "application/octet-stream" builder {-# INLINE writeBytes #-}  @@ -637,11 +633,9 @@   ---------------------------------------------------------------------------------serveError :: Monad m => ServerAPI m -> EngineIOError -> m ()-serveError ServerAPI{..} e = do-  srvSetResponseCode 400-  srvSetContentType "application/json"-  srvWriteBuilder $ Builder.lazyByteString $ Aeson.encode $ Aeson.object+serveError :: Monad m => ServerAPI m -> EngineIOError -> m a+serveError ServerAPI{..} e = srvTerminateWithResponse 400 "application/json" $+  Builder.lazyByteString $ Aeson.encode $ Aeson.object     [ "code" .= errorCode, "message" .= errorMessage ]    where