git.iko.soy/typeable/swagger2
on master help sign in
Add Version instance (#152)
commit19a542e3d5c0cf2fcb7f2528a4e7be9d3284dcf9 authorMatt Parsons <parsonsmatt@gmail.com> dateTue 3 Apr 2018, 16:05 (9 years ago) parentaf7392f
3 files changed+11
src/Data/Swagger/Internal/ParamSchema.hs+6 src/Data/Swagger/Internal/Schema.hs+3 test/Data/Swagger/Schema/ValidationSpec.hs+2
src/Data/Swagger/Internal/ParamSchema.hs+6
@@ -39,6 +39,7 @@ import qualified Data.Vector as V
3939import qualified Data.Vector.Primitive as VP
4040import qualified Data.Vector.Storable as VS
4141import qualified Data.Vector.Unboxed as VU
42+import Data.Version (Version)
4243import Numeric.Natural
4344import Data.Word
4445import Data.UUID.Types (UUID)
@@ -218,6 +219,11 @@ instance ToParamSchema T.Text where
218219instance ToParamSchema TL.Text where
219220 toParamSchema _ = toParamSchema (Proxy :: Proxy String)
220221
222+instance ToParamSchema Version where
223+ toParamSchema _ = mempty
224+ & type_ .~ SwaggerString
225+ & pattern ?~ "^\\d+(\\.\\d+)*$"
226+
221227#if __GLASGOW_HASKELL__ < 800
222228#else
223229type family ToParamSchemaByteStringError bs where
src/Data/Swagger/Internal/Schema.hs+3
@@ -57,6 +57,7 @@ import qualified Data.Vector as V
5757import qualified Data.Vector.Primitive as VP
5858import qualified Data.Vector.Storable as VS
5959import qualified Data.Vector.Unboxed as VU
60+import Data.Version (Version)
6061import Numeric.Natural
6162import Data.Word
6263import GHC.Generics
@@ -498,6 +499,8 @@ instance ToSchema UTCTime where
498499instance ToSchema T.Text where declareNamedSchema = plain . paramSchemaToSchema
499500instance ToSchema TL.Text where declareNamedSchema = plain . paramSchemaToSchema
500501
502+instance ToSchema Version where declareNamedSchema = plain . paramSchemaToSchema
503+
501504#if __GLASGOW_HASKELL__ < 800
502505#else
503506type family ToSchemaByteStringError bs where
test/Data/Swagger/Schema/ValidationSpec.hs+2
@@ -23,6 +23,7 @@ import Data.Proxy
2323import Data.Time
2424import qualified Data.Text as T
2525import qualified Data.Text.Lazy as TL
26+import Data.Version (Version)
2627import Data.Set (Set)
2728import Data.Word
2829import GHC.Generics
@@ -90,6 +91,7 @@ spec = do
9091 prop "MyRoseTree" $ shouldValidate (Proxy :: Proxy MyRoseTree)
9192 prop "Light" $ shouldValidate (Proxy :: Proxy Light)
9293 prop "ButtonImages" $ shouldValidate (Proxy :: Proxy ButtonImages)
94+ prop "Version" $ shouldValidate (Proxy :: Proxy Version)
9395
9496 describe "invalid cases" $ do
9597 prop "invalidPersonToJSON" $ shouldNotValidate invalidPersonToJSON