git.iko.soy/typeable/openapi3
on master help sign in
Extend Schema
6ac3540Maxim Koltsov
src/Data/Swagger/Internal.hs+6−2
@@ -183,7 +183,7 @@ data ServerVariable = ServerVariable
183-- All objects defined within the components object will have no effect on the API
183-- All objects defined within the components object will have no effect on the API
184-- unless they are explicitly referenced from properties outside the components object.
184-- unless they are explicitly referenced from properties outside the components object.
185data Components = Components
185data Components = Components
186− { _componentsSchemas :: Definitions Schema -- TODO check Schema itself
186+ { _componentsSchemas :: Definitions Schema
187 , _componentsResponses :: Definitions Response
187 , _componentsResponses :: Definitions Response
188 , _componentsParameters :: Definitions Param
188 , _componentsParameters :: Definitions Param
189-- , _componentsExamples
189-- , _componentsExamples
@@ -603,11 +603,15 @@ data Schema = Schema
603 , _schemaDescription :: Maybe Text
603 , _schemaDescription :: Maybe Text
604 , _schemaRequired :: [ParamName]
604 , _schemaRequired :: [ParamName]
605
605
606+ , _schemaNullable :: Maybe Bool
606 , _schemaAllOf :: Maybe [Referenced Schema]
607 , _schemaAllOf :: Maybe [Referenced Schema]
608+ , _schemaOneOf :: Maybe [Referenced Schema]
609+ , _schemaNot :: Maybe (Referenced Schema)
610+ , _schemaAnyOf :: Maybe [Referenced Schema]
607 , _schemaProperties :: InsOrdHashMap Text (Referenced Schema)
611 , _schemaProperties :: InsOrdHashMap Text (Referenced Schema)
608 , _schemaAdditionalProperties :: Maybe AdditionalProperties
612 , _schemaAdditionalProperties :: Maybe AdditionalProperties
609
613
610− , _schemaDiscriminator :: Maybe Text
614+ , _schemaDiscriminator :: Maybe Text -- FIXME Discriminator object
611 , _schemaReadOnly :: Maybe Bool
615 , _schemaReadOnly :: Maybe Bool
612 , _schemaXml :: Maybe Xml
616 , _schemaXml :: Maybe Xml
613 , _schemaExternalDocs :: Maybe ExternalDocs
617 , _schemaExternalDocs :: Maybe ExternalDocs
src/Data/Swagger/Internal/Utils.hs+1
@@ -44,6 +44,7 @@ swaggerFieldRules = defaultFieldRules & lensField %~ swaggerFieldNamer
44 fixName' "maximum" = "maximum_" -- Prelude conflict
44 fixName' "maximum" = "maximum_" -- Prelude conflict
45 fixName' "enum" = "enum_" -- Control.Lens conflict
45 fixName' "enum" = "enum_" -- Control.Lens conflict
46 fixName' "head" = "head_" -- Prelude conflict
46 fixName' "head" = "head_" -- Prelude conflict
47+ fixName' "not" = "not_" -- Prelude conflict
47 fixName' n = n
48 fixName' n = n
48
49
49gunfoldEnum :: String -> [a] -> (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a
50gunfoldEnum :: String -> [a] -> (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c a
src/Data/Swagger/Lens.hs+1−1
@@ -37,7 +37,7 @@ makeFields ''Operation
37makeFields ''Param
37makeFields ''Param
38makeLensesWith swaggerFieldRules ''ParamOtherSchema
38makeLensesWith swaggerFieldRules ''ParamOtherSchema
39makeFields ''Header
39makeFields ''Header
40−makeFields ''Schema
40+makeLensesWith swaggerFieldRules ''Schema
41makeFields ''NamedSchema
41makeFields ''NamedSchema
42makeLensesWith swaggerFieldRules ''ParamSchema
42makeLensesWith swaggerFieldRules ''ParamSchema
43makeFields ''Xml
43makeFields ''Xml