git.iko.soy/typeable/openapi3
on master help sign in
Use SecurityDefinitions newtype in Components

Problem: there is `SecurityDefinitions` newtype which is unused. Long ago it was used to store security schemas, but then in 821654c the corresponding field changed to `Definitions SecurityScheme`. There is one essential difference caused by this change: now if we mappend two `Components` (or other types that hold `Components` inside) and both sides have `SecuritySchemeOAuth2`, they won't be merged. Solution: change `_componentsSecuritySchemes` to `SecurityDefinitions`.

commit00aae1404bc9af257588bed6e3dc36e3d7bf6489 authorIvan Gromakovskii <gie1994@gmail.com> dateWed 24 Nov 2021, 18:33 (5 years ago) parentdd20446
1 file changed+6−3
src/Data/OpenApi/Internal.hs+6−3
src/Data/OpenApi/Internal.hs+6−3
@@ -46,7 +46,8 @@ import Data.HashMap.Strict.InsOrd (InsOrdHashMap)
4646import qualified Data.HashMap.Strict.InsOrd as InsOrdHashMap
4747
4848import Generics.SOP.TH (deriveGeneric)
49−import Data.OpenApi.Internal.AesonUtils (sopSwaggerGenericToJSON
49+import Data.OpenApi.Internal.AesonUtils (sopSwaggerGenericToEncoding
50+ ,sopSwaggerGenericToJSON
5051 ,sopSwaggerGenericToJSONWithOpts
5152 ,sopSwaggerGenericParseJSON
5253 ,HasSwaggerAesonOptions(..)
@@ -55,7 +56,6 @@ import Data.OpenApi.Internal.AesonUtils (sopSwaggerGenericToJSON
5556 ,saoAdditionalPairs
5657 ,saoSubObject)
5758import Data.OpenApi.Internal.Utils
58−import Data.OpenApi.Internal.AesonUtils (sopSwaggerGenericToEncoding)
5959
6060-- $setup
6161-- >>> :seti -XDataKinds
@@ -196,7 +196,7 @@ data Components = Components
196196 , _componentsExamples :: Definitions Example
197197 , _componentsRequestBodies :: Definitions RequestBody
198198 , _componentsHeaders :: Definitions Header
199− , _componentsSecuritySchemes :: Definitions SecurityScheme
199+ , _componentsSecuritySchemes :: SecurityDefinitions
200200 , _componentsLinks :: Definitions Link
201201 , _componentsCallbacks :: Definitions Callback
202202 } deriving (Eq, Show, Generic, Data, Typeable)
@@ -1125,6 +1125,7 @@ instance SwaggerMonoid Response
11251125instance SwaggerMonoid ExternalDocs
11261126instance SwaggerMonoid Operation
11271127instance (Eq a, Hashable a) => SwaggerMonoid (InsOrdHashSet a)
1128+instance SwaggerMonoid SecurityDefinitions
11281129
11291130instance SwaggerMonoid MimeList
11301131deriving instance SwaggerMonoid URL
@@ -1614,3 +1615,5 @@ instance AesonDefaultValue MimeList where defaultValue = Just mempty
16141615instance AesonDefaultValue Info
16151616instance AesonDefaultValue ParamLocation
16161617instance AesonDefaultValue Link
1618+instance AesonDefaultValue SecurityDefinitions where
1619+ defaultValue = Just mempty