servant-snap 0.7.0.5 → 0.7.3
raw patch · 4 files changed
+27/−17 lines, 4 filesdep ~HUnitdep ~aesondep ~basePVP: major bump suggested
API removals or changes: PVP suggests a major version bump
Dependency ranges changed: HUnit, aeson, base, hspec, hspec-core, hspec-snap, mmorph, servant
API changes (from Hackage documentation)
- Servant.Server.Internal.RoutingApplication: instance GHC.Base.Monad m => GHC.Base.Alternative (Servant.Server.Internal.RoutingApplication.DelayedM m)
+ Servant.Server.Internal.RoutingApplication: instance (GHC.Base.Monad m, Snap.Internal.Core.MonadSnap m) => GHC.Base.Alternative (Servant.Server.Internal.RoutingApplication.DelayedM m)
Files
- CHANGELOG.md +8/−0
- servant-snap.cabal +13/−13
- src/Servant/Server/Internal/Router.hs +2/−2
- src/Servant/Server/Internal/RoutingApplication.hs +4/−2
CHANGELOG.md view
@@ -1,3 +1,11 @@+0.7.1+-------++Call 'Snap.Core.pass' when routing an empty URI path. This allows an entire+served API to fall through, which is more in line with the rest of snap routing,+and allows multiple servant API's to be served under the same path context+from 'Snap.Core.route'.+ 0.7.0.5 -------
servant-snap.cabal view
@@ -1,5 +1,5 @@ name: servant-snap-version: 0.7.0.5+version: 0.7.3 synopsis: A family of combinators for defining webservices APIs and serving them description: Interpret a Servant API as a Snap server, using any Snaplets you like.@@ -21,7 +21,7 @@ category: Web build-type: Simple cabal-version: >=1.10-tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.1+tested-with: GHC == 7.8.4, GHC == 7.10.3, GHC == 8.0.2, GHC == 8.2.1 extra-source-files: CHANGELOG.md README.md@@ -42,8 +42,8 @@ Servant.Server.Internal.SnapShims Servant.Utils.StaticFiles build-depends:- base >= 4.7 && < 4.10- , aeson >= 0.7 && < 1.1+ base >= 4.7 && < 4.11+ , aeson >= 0.7 && < 1.3 , attoparsec >= 0.12 && < 0.14 , bytestring >= 0.10 && < 0.11 , case-insensitive >= 1.2 && < 1.3@@ -55,8 +55,8 @@ , io-streams >= 1.3 && < 1.4 , network-uri >= 2.6 && < 2.7 , mtl >= 2.0 && < 2.3- , mmorph >= 1 && < 1.1- , servant >= 0.8 && < 0.10+ , mmorph >= 1 && < 1.2+ , servant >= 0.8 && < 0.12 , string-conversions >= 0.3 && < 0.5 , text >= 1.2 && < 1.3 , snap >= 1.0 && < 1.1@@ -80,7 +80,7 @@ , errors , heist , lens- , servant >= 0.6+ , servant , servant-snap , map-syntax , snap@@ -97,7 +97,7 @@ hs-source-dirs: test main-is: Spec.hs build-depends:- base == 4.*+ base == 4.* , aeson , base64-bytestring , bytestring@@ -106,16 +106,16 @@ , directory , either , exceptions- , hspec >= 2.2.3 && < 2.4+ , hspec >= 2.4.3 && < 2.5 , process , digestive-functors >= 0.8.1.0 && < 0.9 , time- , hspec-snap >= 1.0 && < 1.1- , hspec-core >= 2.2.3 && < 2.3+ , hspec-snap >= 1.0.0.2 && < 1.1+ , hspec-core >= 2.4.3 && < 2.5 , http-types- , HUnit+ , HUnit >= 1.4 , mtl- , network >= 2.6+ , network >= 2.6 , QuickCheck , parsec , servant
src/Servant/Server/Internal/Router.hs view
@@ -136,9 +136,9 @@ _ -> respond $ Fail err404 CaptureRouter router' -> case processedPathInfo request of- [] -> respond $ Fail err404+ [] -> respond $ Fail err404 -- pass -- This case is to handle trailing slashes.- [""] -> respond $ Fail err404+ [""] -> respond $ Fail err404 -- pass first : _ -> let request' = reqSafeTail request in runRouterEnv router' (first,env) request' respond
src/Servant/Server/Internal/RoutingApplication.hs view
@@ -51,7 +51,9 @@ r <- ra request routingRespond respond r where- routingRespond (Fail err) = respond $ responseServantErr err+ routingRespond (Fail err) = case errHTTPCode err of+ 404 -> pass+ _ -> respond $ responseServantErr err routingRespond (FailFatal err) = respond $ responseServantErr err routingRespond (Route v) = respond v @@ -118,7 +120,7 @@ instance MonadIO m => MonadIO (DelayedM m) where liftIO m = DelayedM (const . liftIO $ Route <$> m) -instance Monad m => Alternative (DelayedM m) where+instance (Monad m, MonadSnap m) => Alternative (DelayedM m) where empty = DelayedM $ \_ -> return (Fail err404) a <|> b = DelayedM $ \req -> do respA <- runDelayedM a req