webgear-swagger 1.5.0 → 1.5.1
raw patch · 7 files changed
+52/−17 lines, 7 filesdep ~swagger2dep ~webgear-corePVP ok
version bump matches the API change (PVP)
Dependency ranges changed: swagger2, webgear-core
API changes (from Hackage documentation)
Files
- CHANGELOG.md +7/−1
- src/WebGear/Swagger/Handler.hs +6/−1
- src/WebGear/Swagger/Trait/Body.hs +13/−7
- src/WebGear/Swagger/Trait/Header.hs +7/−1
- src/WebGear/Swagger/Trait/Method.hs +7/−1
- src/WebGear/Swagger/Trait/Status.hs +7/−1
- webgear-swagger.cabal +5/−5
CHANGELOG.md view
@@ -2,6 +2,11 @@ ## [Unreleased] +## [1.5.1] - 2206-08-09++### Changed+- Support swagger2-2.9 (#63)+ ## [1.5.0] - 2025-07-23 ### Changed@@ -44,7 +49,8 @@ - Support file uploads (#32) - First version of webgear-swagger -[Unreleased]: https://github.com/haskell-webgear/webgear/compare/v1.5.0...HEAD+[Unreleased]: https://github.com/haskell-webgear/webgear/compare/v1.5.1...HEAD+[1.5.1]: https://github.com/haskell-webgear/webgear/releases/tag/v1.5.1 [1.5.0]: https://github.com/haskell-webgear/webgear/releases/tag/v1.5.0 [1.4.0]: https://github.com/haskell-webgear/webgear/releases/tag/v1.4.0 [1.3.1]: https://github.com/haskell-webgear/webgear/releases/tag/v1.3.1
src/WebGear/Swagger/Handler.hs view
@@ -21,7 +21,6 @@ import Control.Monad ((<=<)) import Control.Monad.State.Strict (MonadState, State, evalState, state) import Data.Coerce (coerce)-import qualified Data.HashMap.Strict.InsOrd as Map import Data.Swagger ( Operation, PathItem,@@ -49,6 +48,12 @@ RoutePath (..), Summary (..), )++#if MIN_VERSION_swagger2(2,9,0)+import qualified Data.HashMap.Strict.InsOrd.Compat as Map+#else+import qualified Data.HashMap.Strict.InsOrd as Map+#endif -- | A handler that captures `Swagger` documentation of API specifications. newtype SwaggerHandler m a b = SwaggerHandler (Swagger -> State Documentation Swagger)
src/WebGear/Swagger/Trait/Body.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -Wno-orphans #-} -- | Swagger implementation of 'Body' trait.@@ -5,7 +6,6 @@ import Control.Lens ((%~), (&), (.~), (?~), (^.)) import Control.Monad.State.Strict (MonadState)-import qualified Data.HashMap.Strict.InsOrd as Map import Data.Proxy (Proxy (..)) import Data.Swagger ( Definitions,@@ -46,6 +46,12 @@ consumeDescription, ) +#if MIN_VERSION_swagger2(2,9,0)+import qualified Data.HashMap.Strict.InsOrd.Compat as Map+#else+import qualified Data.HashMap.Strict.InsOrd as Map+#endif+ instance (ToSchema val, MIMEType mt) => Get (SwaggerHandler m) (Body mt val) where {-# INLINE getTrait #-} getTrait :: Body mt val -> SwaggerHandler m (Request `With` ts) (Either Text val)@@ -64,9 +70,9 @@ doc & allOperations %~ ( \op ->- op- & parameters %~ (Inline body :)- & consumes %~ Just . maybe mimeList (<> mimeList)+ op+ & parameters %~ (Inline body :)+ & consumes %~ Just . maybe mimeList (<> mimeList) ) & definitions %~ (<> defs) @@ -113,8 +119,8 @@ doc' & allOperations %~ ( \op ->- op- & responses . responses %~ Map.map (addDescription . (`swaggerMappend` Inline resp))- & produces %~ Just . maybe mimeList (`swaggerMappend` mimeList)+ op+ & responses . responses %~ Map.map (addDescription . (`swaggerMappend` Inline resp))+ & produces %~ Just . maybe mimeList (`swaggerMappend` mimeList) ) & definitions %~ (<> defs)
src/WebGear/Swagger/Trait/Header.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -Wno-orphans #-} -- | Swagger implementation of 'Header' trait.@@ -5,7 +6,6 @@ import Control.Lens ((%~), (&), (.~), (<>~), (?~)) import Control.Monad.State.Strict (MonadState)-import qualified Data.HashMap.Strict.InsOrd as Map import Data.Proxy (Proxy (Proxy)) import Data.String (fromString) import Data.Swagger (@@ -36,6 +36,12 @@ import WebGear.Core.Trait (Get (..), Set (..)) import qualified WebGear.Core.Trait.Header as WG import WebGear.Swagger.Handler (Documentation, SwaggerHandler (..), consumeDescription)++#if MIN_VERSION_swagger2(2,9,0)+import qualified Data.HashMap.Strict.InsOrd.Compat as Map+#else+import qualified Data.HashMap.Strict.InsOrd as Map+#endif instance ( KnownSymbol name
src/WebGear/Swagger/Trait/Method.hs view
@@ -1,15 +1,21 @@+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -Wno-orphans #-} -- | Swagger implementation of 'Method' trait. module WebGear.Swagger.Trait.Method where import Control.Lens ((%~), (&))-import qualified Data.HashMap.Strict.InsOrd as Map import Data.Swagger (PathItem (..), paths) import Network.HTTP.Types (StdMethod (..)) import WebGear.Core.Trait (Get (..)) import WebGear.Core.Trait.Method (Method (..)) import WebGear.Swagger.Handler (SwaggerHandler (..), addRouteDocumentation)++#if MIN_VERSION_swagger2(2,9,0)+import qualified Data.HashMap.Strict.InsOrd.Compat as Map+#else+import qualified Data.HashMap.Strict.InsOrd as Map+#endif instance Get (SwaggerHandler m) Method where {-# INLINE getTrait #-}
src/WebGear/Swagger/Trait/Status.hs view
@@ -1,3 +1,4 @@+{-# LANGUAGE CPP #-} {-# OPTIONS_GHC -Wno-orphans #-} -- | Swagger implementation of 'Status' trait.@@ -5,7 +6,6 @@ import Control.Applicative ((<|>)) import Control.Lens (at, mapped, (%~), (&), (.~), (?~), (^.))-import qualified Data.HashMap.Strict.InsOrd as Map import Data.Maybe (fromMaybe) import Data.Swagger ( Operation,@@ -29,6 +29,12 @@ import WebGear.Core.Trait (Set, With, setTrait) import WebGear.Core.Trait.Status (Status (..)) import WebGear.Swagger.Handler (SwaggerHandler (..), addRootPath, consumeDescription)++#if MIN_VERSION_swagger2(2,9,0)+import qualified Data.HashMap.Strict.InsOrd.Compat as Map+#else+import qualified Data.HashMap.Strict.InsOrd as Map+#endif instance Set (SwaggerHandler m) Status where {-# INLINE setTrait #-}
webgear-swagger.cabal view
@@ -1,7 +1,7 @@ cabal-version: 2.4 name: webgear-swagger-version: 1.5.0+version: 1.5.1 synopsis: Composable, type-safe library to build HTTP API servers description: WebGear is a library to for building composable, type-safe HTTP API servers.@@ -11,7 +11,7 @@ bug-reports: https://github.com/haskell-webgear/webgear/issues author: Raghu Kaippully maintainer: rkaippully@gmail.com-copyright: 2023-2025 Raghu Kaippully+copyright: 2023-2026 Raghu Kaippully license: MPL-2.0 license-file: LICENSE category: Web@@ -71,12 +71,12 @@ build-depends: arrows ==0.4.* , base >=4.17.0.0 && <4.22 , http-types ==0.12.*- , insert-ordered-containers ==0.2.*+ , insert-ordered-containers >=0.2.0 && <0.4 , lens >=5.2 && <5.4 , mtl >=2.2 && <2.4- , swagger2 >=2.8 && <2.9+ , swagger2 >=2.8 && <2.10 , text >=2.0 && <2.2- , webgear-core ^>=1.5.0+ , webgear-core ^>=1.5.1 ghc-options: -Wall -Wcompat -Widentities