git.iko.soy/typeable/openapi3
on master help sign in
Merge pull request #81 from phadej/uuid

Add UUID instances

commit2c26881ea5fc7c2db888b483e38c5c30c13a2f8f authorNickolay Kudasov <fizruk@users.noreply.github.com> dateMon 26 Sep 2016, 16:11 (10 years ago) parent1d892fb12dbb51
4 files changed+19−1
CHANGELOG.md+5 src/Data/Swagger/Internal/ParamSchema.hs+6 src/Data/Swagger/Internal/Schema.hs+6 swagger2.cabal+2−1
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+
162.1.2.1
27-------
38
src/Data/Swagger/Internal/ParamSchema.hs+6
@@ -30,6 +30,7 @@ import qualified Data.Vector.Primitive as VP
3030import qualified Data.Vector.Storable as VS
3131import qualified Data.Vector.Unboxed as VU
3232import Data.Word
33+import Data.UUID.Types (UUID)
3334
3435import Data.Swagger.Internal
3536import Data.Swagger.Lens
@@ -221,6 +222,11 @@ instance ToParamSchema () where
221222 & type_ .~ SwaggerString
222223 & enum_ ?~ ["_"]
223224
225+instance ToParamSchema UUID where
226+ toParamSchema _ = mempty
227+ & type_ .~ SwaggerString
228+ & format ?~ "uuid"
229+
224230-- | A configurable generic @'ParamSchema'@ creator.
225231--
226232-- >>> :set -XDeriveGeneric
src/Data/Swagger/Internal/Schema.hs+6
@@ -53,6 +53,7 @@ import qualified Data.Vector.Storable as VS
5353import qualified Data.Vector.Unboxed as VU
5454import Data.Word
5555import GHC.Generics
56+import qualified Data.UUID.Types as UUID
5657
5758import Data.Swagger.Declare
5859import Data.Swagger.Internal
@@ -433,6 +434,11 @@ instance (ToSchema a, ToSchema b) => ToSchema (Either a b)
433434instance ToSchema () where
434435 declareNamedSchema _ = pure (NamedSchema Nothing nullarySchema)
435436
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+
436442instance (ToSchema a, ToSchema b) => ToSchema (a, b)
437443instance (ToSchema a, ToSchema b, ToSchema c) => ToSchema (a, b, c)
438444instance (ToSchema a, ToSchema b, ToSchema c, ToSchema d) => ToSchema (a, b, c, d)
swagger2.cabal+2−1
@@ -1,5 +1,5 @@
11name: swagger2
2−version: 2.1.2.1
2+version: 2.1.3
33synopsis: Swagger 2.0 data model
44description: Please see README.md
55homepage: https://github.com/GetShopTV/swagger2
@@ -57,6 +57,7 @@ library
5757 , transformers
5858 , unordered-containers
5959 , vector
60+ , uuid-types >=1.0.2 && <1.1
6061 default-language: Haskell2010
6162
6263test-suite spec