git.iko.soy/typeable/swagger2
on master help sign in
encode Reference
eb56ccaiko
src/Data/Swagger/Internal.hs+17−4
@@ -1048,6 +1048,12 @@ percentEncodeSwagger :: Swagger -> Swagger
1048percentEncodeSwagger s = s
1048percentEncodeSwagger s = s
1049 { _swaggerDefinitions =
1049 { _swaggerDefinitions =
1050 InsOrdHashMap.mapKeys percentEncodeT $ _swaggerDefinitions s
1050 InsOrdHashMap.mapKeys percentEncodeT $ _swaggerDefinitions s
1051+ , _swaggerParameters =
1052+ InsOrdHashMap.mapKeys percentEncodeT $ _swaggerParameters s
1053+ , _swaggerResponses =
1054+ InsOrdHashMap.mapKeys percentEncodeT $ _swaggerResponses s
1055+ , _swaggerSecurityDefinitions =
1056+ InsOrdHashMap.mapKeys percentEncodeT $ _swaggerSecurityDefinitions s
1051 }
1057 }
1052
1058
1053instance ToJSON SecurityScheme where
1059instance ToJSON SecurityScheme where
@@ -1121,10 +1127,11 @@ instance ToJSON Example where
1121 toJSON = toJSON . Map.mapKeys show . getExample
1127 toJSON = toJSON . Map.mapKeys show . getExample
1122
1128
1123instance ToJSON Reference where
1129instance ToJSON Reference where
1124− toJSON (Reference ref) = object [ "$ref" .= ref ]
1130+ toJSON (Reference ref) = object [ "$ref" .= percentEncodeT ref ]
1125
1131
1126referencedToJSON :: ToJSON a => Text -> Referenced a -> Value
1132referencedToJSON :: ToJSON a => Text -> Referenced a -> Value
1127−referencedToJSON prefix (Ref (Reference ref)) = object [ "$ref" .= (prefix <> ref) ]
1133+referencedToJSON prefix (Ref (Reference ref)) =
1134+ object [ "$ref" .= (prefix <> percentEncodeT ref) ]
1128referencedToJSON _ (Inline x) = toJSON x
1135referencedToJSON _ (Inline x) = toJSON x
1129
1136
1130instance ToJSON (Referenced Schema) where toJSON = referencedToJSON "#/definitions/"
1137instance ToJSON (Referenced Schema) where toJSON = referencedToJSON "#/definitions/"
@@ -1193,7 +1200,13 @@ instance FromJSON Swagger where
1193percentDecodeSwagger :: Swagger -> Swagger
1200percentDecodeSwagger :: Swagger -> Swagger
1194percentDecodeSwagger s = s
1201percentDecodeSwagger s = s
1195 { _swaggerDefinitions =
1202 { _swaggerDefinitions =
1196− InsOrdHashMap.mapKeys percentEncodeT $ _swaggerDefinitions s
1203+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerDefinitions s
1204+ , _swaggerParameters =
1205+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerParameters s
1206+ , _swaggerResponses =
1207+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerResponses s
1208+ , _swaggerSecurityDefinitions =
1209+ InsOrdHashMap.mapKeys percentDecodeT $ _swaggerSecurityDefinitions s
1197 }
1210 }
1198
1211
1199instance FromJSON SecurityScheme where
1212instance FromJSON SecurityScheme where
@@ -1288,7 +1301,7 @@ instance FromJSON PathItem where
1288 parseJSON = sopSwaggerGenericParseJSON
1301 parseJSON = sopSwaggerGenericParseJSON
1289
1302
1290instance FromJSON Reference where
1303instance FromJSON Reference where
1291− parseJSON (Object o) = Reference <$> o .: "$ref"
1304+ parseJSON (Object o) = Reference . percentDecodeT <$> o .: "$ref"
1292 parseJSON _ = empty
1305 parseJSON _ = empty
1293
1306
1294referencedParseJSON :: FromJSON a => Text -> Value -> JSON.Parser (Referenced a)
1307referencedParseJSON :: FromJSON a => Text -> Value -> JSON.Parser (Referenced a)