Skip to content

Commit 2729704

Browse files
committed
Revert "chore: removes unused API surface"
This reverts commit c24dfbd.
1 parent 61645ae commit 2729704

File tree

3 files changed

+21
-6
lines changed

3 files changed

+21
-6
lines changed

src/Microsoft.OpenApi/Reader/ParseNodes/MapNode.cs

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,19 @@ public MapNode(ParsingContext context, JsonNode node) : base(
3737
_nodes = _node.Select(p => GetPropertyNodeFromJsonNode(p.Key, p.Value)).ToList();
3838
}
3939

40+
public PropertyNode? this[string key]
41+
{
42+
get
43+
{
44+
if (_node.TryGetPropertyValue(key, out var value))
45+
{
46+
return GetPropertyNodeFromJsonNode(key, value);
47+
}
48+
49+
return null;
50+
}
51+
}
52+
4053
public override Dictionary<string, T> CreateMap<T>(Func<MapNode, OpenApiDocument, T> map, OpenApiDocument hostDocument)
4154
{
4255
var jsonMap = _node ?? throw new OpenApiReaderException($"Expected map while parsing {typeof(T).Name}", Context);

src/Microsoft.OpenApi/Reader/V2/OpenApiV2Deserializer.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,16 +19,19 @@ private static void ParseMap<T>(
1919
T domainObject,
2020
FixedFieldMap<T> fixedFieldMap,
2121
PatternFieldMap<T> patternFieldMap,
22-
OpenApiDocument doc)
22+
OpenApiDocument doc,
23+
List<string>? requiredFields = null)
2324
{
2425
if (mapNode == null)
2526
{
2627
return;
2728
}
2829

29-
foreach (var propertyNode in mapNode)
30+
var allFields = fixedFieldMap.Keys.Union(mapNode.Select(static x => x.Name));
31+
foreach (var propertyNode in allFields)
3032
{
31-
propertyNode.ParseField(domainObject, fixedFieldMap, patternFieldMap, doc);
33+
mapNode[propertyNode]?.ParseField(domainObject, fixedFieldMap, patternFieldMap, doc);
34+
requiredFields?.Remove(propertyNode);
3235
}
3336
}
3437

test/Microsoft.OpenApi.Tests/Reader/MapNodeTests.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
1-
using System.Linq;
2-
using System.Text.Json.Nodes;
1+
using System.Text.Json.Nodes;
32
using Microsoft.OpenApi.Reader;
43
using Xunit;
54

@@ -15,6 +14,6 @@ public void DoesNotFailOnNullValue()
1514

1615
Assert.NotNull(mapNode);
1716
Assert.Single(mapNode);
18-
Assert.True(mapNode.First().Value.JsonNode.IsJsonNullSentinel());
17+
Assert.True(mapNode["key"].Value.JsonNode.IsJsonNullSentinel());
1918
}
2019
}

0 commit comments

Comments
 (0)