Skip to content

Commit

Permalink
chore: cleanup of GetValues where possible
Browse files Browse the repository at this point in the history
  • Loading branch information
baywet committed Feb 18, 2025
1 parent b59864c commit d49c38d
Show file tree
Hide file tree
Showing 7 changed files with 28 additions and 27 deletions.
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
using Microsoft.OpenApi.Any;
using Microsoft.OpenApi.Interfaces;
using System.Collections.Generic;
using System.Text.Json.Nodes;

namespace Microsoft.OpenApi.Hidi.Extensions
{
Expand All @@ -14,9 +15,9 @@ internal static class OpenApiExtensibleExtensions
/// <returns>A <see cref="string"/> value matching the provided extensionKey. Return null when extensionKey is not found. </returns>
internal static string GetExtension(this IDictionary<string, IOpenApiExtension> extensions, string extensionKey)
{
if (extensions.TryGetValue(extensionKey, out var value) && value is OpenApiAny castValue)
if (extensions.TryGetValue(extensionKey, out var value) && value is OpenApiAny { Node: JsonValue castValue } && castValue.TryGetValue<string>(out var stringValue))
{
return castValue.Node.GetValue<string>();
return stringValue;
}
return string.Empty;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,10 +116,10 @@ public static OpenApiDeprecationExtension Parse(JsonNode source)
RemovalDate = GetDateTimeOffsetValue(nameof(RemovalDate), rawObject),
Date = GetDateTimeOffsetValue(nameof(Date), rawObject)
};
if (rawObject.TryGetPropertyValue(nameof(Version).ToFirstCharacterLowerCase(), out var version) && version is JsonNode versionValue)
extension.Version = versionValue.GetValue<string>();
if (rawObject.TryGetPropertyValue(nameof(Description).ToFirstCharacterLowerCase(), out var description) && description is JsonNode descriptionValue)
extension.Description = descriptionValue.GetValue<string>();
if (rawObject.TryGetPropertyValue(nameof(Version).ToFirstCharacterLowerCase(), out var version) && version is JsonValue versionValue && versionValue.TryGetValue<string>(out var versionStr))
extension.Version = versionStr;
if (rawObject.TryGetPropertyValue(nameof(Description).ToFirstCharacterLowerCase(), out var description) && description is JsonValue descriptionValue && descriptionValue.TryGetValue<string>(out var descriptionStr))
extension.Description = descriptionStr;
return extension;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -47,9 +47,9 @@ public static OpenApiEnumFlagsExtension Parse(JsonNode source)
{
if (source is not JsonObject rawObject) throw new ArgumentOutOfRangeException(nameof(source));
var extension = new OpenApiEnumFlagsExtension();
if (rawObject.TryGetPropertyValue(nameof(IsFlags).ToFirstCharacterLowerCase(), out var flagsValue) && flagsValue is JsonNode isFlags)
if (rawObject.TryGetPropertyValue(nameof(IsFlags).ToFirstCharacterLowerCase(), out var flagsValue) && flagsValue is JsonValue isFlags && isFlags.TryGetValue<bool>(out var isFlagsValue))
{
extension.IsFlags = isFlags.GetValue<bool>();
extension.IsFlags = isFlagsValue;
}
return extension;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -96,15 +96,15 @@ public EnumDescription()
public EnumDescription(JsonObject source)
{
if (source is null) throw new ArgumentNullException(nameof(source));
if (source.TryGetPropertyValue(nameof(Value).ToFirstCharacterLowerCase(), out var rawValue) && rawValue is JsonNode value)
if (value.GetValueKind() == JsonValueKind.Number)
Value = value.GetValue<decimal>().ToString(CultureInfo.InvariantCulture);
else
Value = value.GetValue<string>();
if (source.TryGetPropertyValue(nameof(Description).ToFirstCharacterLowerCase(), out var rawDescription) && rawDescription is JsonNode description)
Description = description.GetValue<string>();
if (source.TryGetPropertyValue(nameof(Name).ToFirstCharacterLowerCase(), out var rawName) && rawName is JsonNode name)
Name = name.GetValue<string>();
if (source.TryGetPropertyValue(nameof(Value).ToFirstCharacterLowerCase(), out var rawValue) && rawValue is JsonValue value)
if (value.GetValueKind() == JsonValueKind.Number && value.TryGetValue<decimal>(out var decimalValue))
Value = decimalValue.ToString(CultureInfo.InvariantCulture);
else if (value.TryGetValue<string>(out var stringValue))
Value = stringValue;
if (source.TryGetPropertyValue(nameof(Description).ToFirstCharacterLowerCase(), out var rawDescription) && rawDescription is JsonValue description && description.TryGetValue<string>(out var stringValueDescription))
Description = stringValueDescription;
if (source.TryGetPropertyValue(nameof(Name).ToFirstCharacterLowerCase(), out var rawName) && rawName is JsonValue name && name.TryGetValue<string>(out var stringValueName))
Name = stringValueName;
}
/// <summary>
/// The description for the enum symbol
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -75,19 +75,19 @@ public static OpenApiPagingExtension Parse(JsonNode source)
{
if (source is not JsonObject rawObject) return null;
var extension = new OpenApiPagingExtension();
if (rawObject.TryGetPropertyValue(nameof(NextLinkName).ToFirstCharacterLowerCase(), out var nextLinkName) && nextLinkName is JsonNode nextLinkNameStr)
if (rawObject.TryGetPropertyValue(nameof(NextLinkName).ToFirstCharacterLowerCase(), out var nextLinkName) && nextLinkName is JsonValue nextLinkNameValue && nextLinkNameValue.TryGetValue<string>(out var nextLinkNameStr))
{
extension.NextLinkName = nextLinkNameStr.GetValue<string>();
extension.NextLinkName = nextLinkNameStr;
}

if (rawObject.TryGetPropertyValue(nameof(OperationName).ToFirstCharacterLowerCase(), out var opName) && opName is JsonNode opNameStr)
if (rawObject.TryGetPropertyValue(nameof(OperationName).ToFirstCharacterLowerCase(), out var opName) && opName is JsonValue opNameValue && opNameValue.TryGetValue<string>(out var opNameStr))
{
extension.OperationName = opNameStr.GetValue<string>();
extension.OperationName = opNameStr;
}

if (rawObject.TryGetPropertyValue(nameof(ItemName).ToFirstCharacterLowerCase(), out var itemName) && itemName is JsonNode itemNameStr)
if (rawObject.TryGetPropertyValue(nameof(ItemName).ToFirstCharacterLowerCase(), out var itemName) && itemName is JsonValue itemNameValue && itemNameValue.TryGetValue<string>(out var itemNameStr))
{
extension.ItemName = itemNameStr.GetValue<string>();
extension.ItemName = itemNameStr;
}

return extension;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,10 @@ public void Write(IOpenApiWriter writer, OpenApiSpecVersion specVersion)
/// <returns>The <see cref="OpenApiPrimaryErrorMessageExtension"/>.</returns>
public static OpenApiPrimaryErrorMessageExtension Parse(JsonNode source)
{
if (source is not JsonNode rawObject) return null;
if (source is not JsonValue rawObject) return null;
return new()
{
IsPrimaryErrorMessage = rawObject.GetValue<bool>()
IsPrimaryErrorMessage = rawObject.TryGetValue<bool>(out var value) && value
};
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,10 +42,10 @@ public bool? IsReserved
/// <returns></returns>
public static OpenApiReservedParameterExtension Parse(JsonNode source)
{
if (source is not JsonNode rawBoolean) return null;
if (source is not JsonValue rawBoolean) return null;
return new()
{
IsReserved = rawBoolean.GetValue<bool>()
IsReserved = rawBoolean.TryGetValue<bool>(out var value) && value
};
}
}

0 comments on commit d49c38d

Please sign in to comment.