git.iko.soy/typeable/swagger2
on master help sign in
add generation of additional properties
commit9c11bed9a0615197c3d91cc10c5b9b30e21f0ad9 authorBen Weitzman <benweitzman@gmail.com> dateThu 16 Aug 2018, 19:13 (8 years ago) parent49b1f9b
1 file changed+7−1
src/Data/Swagger/Schema/Generator.hs+7−1
src/Data/Swagger/Schema/Generator.hs+7−1
@@ -1,4 +1,5 @@
11{-# LANGUAGE GADTs #-}
2+{-# LANGUAGE OverloadedLists #-}
23{-# LANGUAGE ScopedTypeVariables #-}
34
45module Data.Swagger.Schema.Generator where
@@ -79,7 +80,12 @@ schemaGen defns schema =
7980 let presentKeys = take numProps $ S.toList reqKeys ++ shuffledOptional
8081 let presentProps = M.filterWithKey (\k _ -> k `elem` presentKeys) props
8182 let gens = schemaGen defns <$> presentProps
82− x <- sequence gens
83+ additionalGens <- case schema ^. additionalProperties of
84+ Just (AdditionalPropertiesSchema addlSchema) -> do
85+ additionalKeys <- sequence . take (numProps - length presentProps) . repeat $ T.pack <$> arbitrary
86+ return . M.fromList $ zip additionalKeys (repeat . schemaGen defns $ dereference defns addlSchema)
87+ _ -> return []
88+ x <- sequence $ gens <> additionalGens
8389 return . Object $ M.toHashMap x
8490 where
8591 dereference :: Definitions a -> Referenced a -> a