git.iko.soy/typeable/openapi3
on master help sign in
Add UUID instances
12dbb51Oleg Grenrus
CHANGELOG.md+5
@@ -1,3 +1,8 @@
1+2.1.3
2+-----
3+
4+* Add UUID instances (see [#81](https://github.com/GetShopTV/swagger2/pull/81)).
5+
12.1.2.1
62.1.2.1
2-------
7-------
3
8
src/Data/Swagger/Internal/ParamSchema.hs+6
@@ -30,6 +30,7 @@ import qualified Data.Vector.Primitive as VP
30import qualified Data.Vector.Storable as VS
30import qualified Data.Vector.Storable as VS
31import qualified Data.Vector.Unboxed as VU
31import qualified Data.Vector.Unboxed as VU
32import Data.Word
32import Data.Word
33+import Data.UUID.Types (UUID)
33
34
34import Data.Swagger.Internal
35import Data.Swagger.Internal
35import Data.Swagger.Lens
36import Data.Swagger.Lens
@@ -221,6 +222,11 @@ instance ToParamSchema () where
221 & type_ .~ SwaggerString
222 & type_ .~ SwaggerString
222 & enum_ ?~ ["_"]
223 & enum_ ?~ ["_"]
223
224
225+instance ToParamSchema UUID where
226+ toParamSchema _ = mempty
227+ & type_ .~ SwaggerString
228+ & format ?~ "uuid"
229+
224-- | A configurable generic @'ParamSchema'@ creator.
230-- | A configurable generic @'ParamSchema'@ creator.
225--
231--
226-- >>> :set -XDeriveGeneric
232-- >>> :set -XDeriveGeneric
src/Data/Swagger/Internal/Schema.hs+6
@@ -53,6 +53,7 @@ import qualified Data.Vector.Storable as VS
53import qualified Data.Vector.Unboxed as VU
53import qualified Data.Vector.Unboxed as VU
54import Data.Word
54import Data.Word
55import GHC.Generics
55import GHC.Generics
56+import qualified Data.UUID.Types as UUID
56
57
57import Data.Swagger.Declare
58import Data.Swagger.Declare
58import Data.Swagger.Internal
59import Data.Swagger.Internal
@@ -433,6 +434,11 @@ instance (ToSchema a, ToSchema b) => ToSchema (Either a b)
433instance ToSchema () where
434instance ToSchema () where
434 declareNamedSchema _ = pure (NamedSchema Nothing nullarySchema)
435 declareNamedSchema _ = pure (NamedSchema Nothing nullarySchema)
435
436
437+-- | For 'ToJSON' instance, see <http://hackage.haskell.org/package/uuid-aeson uuid-aeson> package.
438+instance ToSchema UUID.UUID where
439+ declareNamedSchema p = pure $ named "UUID" $ paramSchemaToSchema p
440+ & example ?~ toJSON (UUID.toText UUID.nil)
441+
436instance (ToSchema a, ToSchema b) => ToSchema (a, b)
442instance (ToSchema a, ToSchema b) => ToSchema (a, b)
437instance (ToSchema a, ToSchema b, ToSchema c) => ToSchema (a, b, c)
443instance (ToSchema a, ToSchema b, ToSchema c) => ToSchema (a, b, c)
438instance (ToSchema a, ToSchema b, ToSchema c, ToSchema d) => ToSchema (a, b, c, d)
444instance (ToSchema a, ToSchema b, ToSchema c, ToSchema d) => ToSchema (a, b, c, d)
swagger2.cabal+2−1
@@ -1,5 +1,5 @@
1name: swagger2
1name: swagger2
2−version: 2.1.2.1
2+version: 2.1.3
3synopsis: Swagger 2.0 data model
3synopsis: Swagger 2.0 data model
4description: Please see README.md
4description: Please see README.md
5homepage: https://github.com/GetShopTV/swagger2
5homepage: https://github.com/GetShopTV/swagger2
@@ -57,6 +57,7 @@ library
57 , transformers
57 , transformers
58 , unordered-containers
58 , unordered-containers
59 , vector
59 , vector
60+ , uuid-types >=1.0.2 && <1.1
60 default-language: Haskell2010
61 default-language: Haskell2010
61
62
62test-suite spec
63test-suite spec