packages feed

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 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