Skip to content
This repository was archived by the owner on Nov 11, 2025. It is now read-only.

Commit 9877815

Browse files
committed
chore: refactors the extension parsing to live in extensions
Signed-off-by: Vincent Biret <[email protected]>
1 parent cf745f3 commit 9877815

File tree

2 files changed

+26
-20
lines changed

2 files changed

+26
-20
lines changed

src/Microsoft.OpenApi/Reader/V3/OpenApiOAuthFlowDeserializer.cs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -48,24 +48,27 @@ internal static partial class OpenApiV3Deserializer
4848
}
4949
}
5050
},
51+
{"scopes", (o, n, _) => o.Scopes = n.CreateSimpleMap(LoadString).Where(kv => kv.Value is not null).ToDictionary(kv => kv.Key, kv => kv.Value!)}
52+
};
53+
54+
private static readonly PatternFieldMap<OpenApiOAuthFlow> _oAuthFlowPatternFields =
55+
new()
56+
{
57+
{s => s.StartsWith(OpenApiConstants.ExtensionFieldNamePrefix, StringComparison.OrdinalIgnoreCase), (o, p, n, _) =>
5158
{
52-
"x-oai-deviceAuthorizationUrl",
53-
(o, n, _) =>
59+
if (p.Equals("x-oai-deviceAuthorizationUrl", StringComparison.OrdinalIgnoreCase))
5460
{
5561
var url = n.GetScalarValue();
5662
if (url != null)
5763
{
5864
o.DeviceAuthorizationUrl = new(url, UriKind.RelativeOrAbsolute);
5965
}
6066
}
61-
},
62-
{"scopes", (o, n, _) => o.Scopes = n.CreateSimpleMap(LoadString).Where(kv => kv.Value is not null).ToDictionary(kv => kv.Key, kv => kv.Value!)}
63-
};
64-
65-
private static readonly PatternFieldMap<OpenApiOAuthFlow> _oAuthFlowPatternFields =
66-
new()
67-
{
68-
{s => s.StartsWith(OpenApiConstants.ExtensionFieldNamePrefix, StringComparison.OrdinalIgnoreCase), (o, p, n, _) => o.AddExtension(p, LoadExtension(p,n))}
67+
else
68+
{
69+
o.AddExtension(p, LoadExtension(p, n));
70+
}
71+
}}
6972
};
7073

7174
public static OpenApiOAuthFlow LoadOAuthFlow(ParseNode node, OpenApiDocument hostDocument)

src/Microsoft.OpenApi/Reader/V31/OpenApiOAuthFlowDeserializer.cs

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -45,24 +45,27 @@ internal static partial class OpenApiV31Deserializer
4545
}
4646
}
4747
},
48+
{"scopes", (o, n, _) => o.Scopes = n.CreateSimpleMap(LoadString).Where(kv => kv.Value is not null).ToDictionary(kv => kv.Key, kv => kv.Value!)}
49+
};
50+
51+
private static readonly PatternFieldMap<OpenApiOAuthFlow> _oAuthFlowPatternFields =
52+
new()
53+
{
54+
{s => s.StartsWith(OpenApiConstants.ExtensionFieldNamePrefix, StringComparison.OrdinalIgnoreCase), (o, p, n, _) =>
4855
{
49-
"x-oai-deviceAuthorizationUrl",
50-
(o, n, _) =>
56+
if (p.Equals("x-oai-deviceAuthorizationUrl", StringComparison.OrdinalIgnoreCase))
5157
{
5258
var url = n.GetScalarValue();
5359
if (url != null)
5460
{
5561
o.DeviceAuthorizationUrl = new(url, UriKind.RelativeOrAbsolute);
5662
}
5763
}
58-
},
59-
{"scopes", (o, n, _) => o.Scopes = n.CreateSimpleMap(LoadString).Where(kv => kv.Value is not null).ToDictionary(kv => kv.Key, kv => kv.Value!)}
60-
};
61-
62-
private static readonly PatternFieldMap<OpenApiOAuthFlow> _oAuthFlowPatternFields =
63-
new()
64-
{
65-
{s => s.StartsWith(OpenApiConstants.ExtensionFieldNamePrefix, StringComparison.OrdinalIgnoreCase), (o, p, n, _) => o.AddExtension(p, LoadExtension(p,n))}
64+
else
65+
{
66+
o.AddExtension(p, LoadExtension(p, n));
67+
}
68+
}}
6669
};
6770

6871
public static OpenApiOAuthFlow LoadOAuthFlow(ParseNode node, OpenApiDocument hostDocument)

0 commit comments

Comments
 (0)