git.iko.soy/typeable/swagger2
on master help sign in
Add schema templates for binary, byte and password formats
commit63ed59736dc4f942f0e2a7d668d7cee513fa9eaf authorNickolay Kudasov <nickolay.kudasov@gmail.com> dateTue 2 Feb 2016, 13:49 (11 years ago) parent7c8362d
4 files changed+48
src/Data/Swagger/Internal/ParamSchema.hs+19 src/Data/Swagger/Internal/Schema.hs+19 src/Data/Swagger/ParamSchema.hs+5 src/Data/Swagger/Schema.hs+5
src/Data/Swagger/Internal/ParamSchema.hs+19
@@ -35,6 +35,25 @@ import Data.Swagger.Internal
3535import Data.Swagger.Lens
3636import Data.Swagger.SchemaOptions
3737
38+-- | Default schema for binary data (any sequence of octets).
39+binaryParamSchema :: ParamSchema t
40+binaryParamSchema = mempty
41+ & type_ .~ SwaggerString
42+ & format ?~ "binary"
43+
44+-- | Default schema for binary data (base64 encoded).
45+byteParamSchema :: ParamSchema t
46+byteParamSchema = mempty
47+ & type_ .~ SwaggerString
48+ & format ?~ "byte"
49+
50+-- | Default schema for password string.
51+-- @"password"@ format is used to hint UIs the input needs to be obscured.
52+passwordParamSchema :: ParamSchema t
53+passwordParamSchema = mempty
54+ & type_ .~ SwaggerString
55+ & format ?~ "password"
56+
3857-- | Convert a type into a plain @'ParamSchema'@.
3958--
4059-- An example type and instance:
src/Data/Swagger/Internal/Schema.hs+19
@@ -267,6 +267,25 @@ inlineNonRecursiveSchemas defs = inlineSchemasWhen nonRecursive defs
267267 traverse_ usedNames (HashMap.lookup name defs)
268268 Inline subschema -> usedNames subschema
269269
270+-- | Default schema for binary data (any sequence of octets).
271+binarySchema :: Schema
272+binarySchema = mempty
273+ & type_ .~ SwaggerString
274+ & format ?~ "binary"
275+
276+-- | Default schema for binary data (base64 encoded).
277+byteSchema :: Schema
278+byteSchema = mempty
279+ & type_ .~ SwaggerString
280+ & format ?~ "byte"
281+
282+-- | Default schema for password string.
283+-- @"password"@ format is used to hint UIs the input needs to be obscured.
284+passwordSchema :: Schema
285+passwordSchema = mempty
286+ & type_ .~ SwaggerString
287+ & format ?~ "password"
288+
270289class GToSchema (f :: * -> *) where
271290 gdeclareNamedSchema :: SchemaOptions -> proxy f -> Schema -> Declare (Definitions Schema) NamedSchema
272291
src/Data/Swagger/ParamSchema.hs+5
@@ -14,6 +14,11 @@ module Data.Swagger.ParamSchema (
1414 genericToParamSchema,
1515 toParamSchemaBoundedIntegral,
1616
17+ -- * Schema templates
18+ passwordParamSchema,
19+ binaryParamSchema,
20+ byteParamSchema,
21+
1722 -- * Generic encoding configuration
1823 SchemaOptions(..),
1924 defaultSchemaOptions,
src/Data/Swagger/Schema.hs+5
@@ -24,6 +24,11 @@ module Data.Swagger.Schema (
2424 paramSchemaToNamedSchema,
2525 paramSchemaToSchema,
2626
27+ -- * Schema templates
28+ passwordSchema,
29+ binarySchema,
30+ byteSchema,
31+
2732 -- * Inlining @'Schema'@s
2833 inlineNonRecursiveSchemas,
2934 inlineAllSchemas,