@@ -39,3 +39,67 @@ makeLenses ''SwaggerApiKeyParams
39makeLenses ''SwaggerOAuth2Params
39makeLenses ''SwaggerOAuth2Params
40makeLenses ''SwaggerExternalDocs
40makeLenses ''SwaggerExternalDocs
42+-- =======================================================================
43+-- Helper classy lenses
44+-- =======================================================================
46+class HasSwaggerSchemaCommon s where
47+ schemaCommon :: Lens' s SwaggerSchemaCommon
49+instance HasSwaggerSchemaCommon SwaggerParameter where
50+ schemaCommon = swaggerParameterSchema.schemaCommon
52+instance HasSwaggerSchemaCommon SwaggerParameterSchema where
53+ schemaCommon = paramSchemaEither . choosing schemaCommon schemaCommon
55+ paramSchemaEither = iso toEither fromEither
56+ toEither (SwaggerParameterBody x) = Left x
57+ toEither (SwaggerParameterOther y) = Right y
58+ fromEither (Left x) = SwaggerParameterBody x
59+ fromEither (Right y) = SwaggerParameterOther y
61+instance HasSwaggerSchemaCommon SwaggerSchema where schemaCommon = swaggerSchemaCommon
62+instance HasSwaggerSchemaCommon SwaggerParameterOtherSchema where schemaCommon = swaggerParameterOtherSchemaCommon
63+instance HasSwaggerSchemaCommon SwaggerItems where schemaCommon = swaggerItemsCommon
64+instance HasSwaggerSchemaCommon SwaggerHeader where schemaCommon = swaggerHeaderCommon
65+instance HasSwaggerSchemaCommon SwaggerSchemaCommon where schemaCommon = id
67+schemaDefault :: HasSwaggerSchemaCommon s => Lens' s (Maybe Value)
68+schemaDefault = schemaCommon.swaggerSchemaDefault
70+schemaMaximum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
71+schemaMaximum = schemaCommon.swaggerSchemaMaximum
73+schemaExclusiveMaximum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Bool)
74+schemaExclusiveMaximum = schemaCommon.swaggerSchemaExclusiveMaximum
76+schemaMinimum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
77+schemaMinimum = schemaCommon.swaggerSchemaMinimum
79+schemaExclusiveMinimum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Bool)
80+schemaExclusiveMinimum = schemaCommon.swaggerSchemaExclusiveMinimum
82+schemaMaxLength :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
83+schemaMaxLength = schemaCommon.swaggerSchemaMaxLength
85+schemaMinLength :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
86+schemaMinLength = schemaCommon.swaggerSchemaMinLength
88+schemaPattern :: HasSwaggerSchemaCommon s => Lens' s (Maybe Text)
89+schemaPattern = schemaCommon.swaggerSchemaPattern
91+schemaMaxItems :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
92+schemaMaxItems = schemaCommon.swaggerSchemaMaxItems
94+schemaMinItems :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
95+schemaMinItems = schemaCommon.swaggerSchemaMinItems
97+schemaUniqueItems :: HasSwaggerSchemaCommon s => Lens' s (Maybe Bool)
98+schemaUniqueItems = schemaCommon.swaggerSchemaUniqueItems
100+schemaEnum :: HasSwaggerSchemaCommon s => Lens' s (Maybe [Value])
101+schemaEnum = schemaCommon.swaggerSchemaEnum
103+schemaMultipleOf :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
104+schemaMultipleOf = schemaCommon.swaggerSchemaMultipleOf