git.iko.soy/typeable/swagger2
on master help sign in
Add HasSwaggerSchemaCommon helper class for simpler lenses
commit6de52f3050100b7e8ee5293d4479f32d95d34da6 authorNickolay Kudasov <nickolay.kudasov@gmail.com> dateMon 9 Nov 2015, 13:19 (11 years ago) parentac9890b
1 file changed+64
src/Data/Swagger/Lens.hs+64
src/Data/Swagger/Lens.hs+64
@@ -39,3 +39,67 @@ makeLenses ''SwaggerApiKeyParams
3939makeLenses ''SwaggerOAuth2Params
4040makeLenses ''SwaggerExternalDocs
4141
42+-- =======================================================================
43+-- Helper classy lenses
44+-- =======================================================================
45+
46+class HasSwaggerSchemaCommon s where
47+ schemaCommon :: Lens' s SwaggerSchemaCommon
48+
49+instance HasSwaggerSchemaCommon SwaggerParameter where
50+ schemaCommon = swaggerParameterSchema.schemaCommon
51+
52+instance HasSwaggerSchemaCommon SwaggerParameterSchema where
53+ schemaCommon = paramSchemaEither . choosing schemaCommon schemaCommon
54+ where
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
60+
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
66+
67+schemaDefault :: HasSwaggerSchemaCommon s => Lens' s (Maybe Value)
68+schemaDefault = schemaCommon.swaggerSchemaDefault
69+
70+schemaMaximum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
71+schemaMaximum = schemaCommon.swaggerSchemaMaximum
72+
73+schemaExclusiveMaximum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Bool)
74+schemaExclusiveMaximum = schemaCommon.swaggerSchemaExclusiveMaximum
75+
76+schemaMinimum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
77+schemaMinimum = schemaCommon.swaggerSchemaMinimum
78+
79+schemaExclusiveMinimum :: HasSwaggerSchemaCommon s => Lens' s (Maybe Bool)
80+schemaExclusiveMinimum = schemaCommon.swaggerSchemaExclusiveMinimum
81+
82+schemaMaxLength :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
83+schemaMaxLength = schemaCommon.swaggerSchemaMaxLength
84+
85+schemaMinLength :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
86+schemaMinLength = schemaCommon.swaggerSchemaMinLength
87+
88+schemaPattern :: HasSwaggerSchemaCommon s => Lens' s (Maybe Text)
89+schemaPattern = schemaCommon.swaggerSchemaPattern
90+
91+schemaMaxItems :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
92+schemaMaxItems = schemaCommon.swaggerSchemaMaxItems
93+
94+schemaMinItems :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
95+schemaMinItems = schemaCommon.swaggerSchemaMinItems
96+
97+schemaUniqueItems :: HasSwaggerSchemaCommon s => Lens' s (Maybe Bool)
98+schemaUniqueItems = schemaCommon.swaggerSchemaUniqueItems
99+
100+schemaEnum :: HasSwaggerSchemaCommon s => Lens' s (Maybe [Value])
101+schemaEnum = schemaCommon.swaggerSchemaEnum
102+
103+schemaMultipleOf :: HasSwaggerSchemaCommon s => Lens' s (Maybe Integer)
104+schemaMultipleOf = schemaCommon.swaggerSchemaMultipleOf
105+