From 55c3036d130e82b45acee47d8e7b67f32367decc Mon Sep 17 00:00:00 2001 From: Maggiekimani1 Date: Wed, 2 Oct 2024 18:18:45 +0300 Subject: [PATCH] Add support for transforming 3.1 docs --- .../OpenApiSpecVersionHelper.cs | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/Microsoft.OpenApi.Hidi/OpenApiSpecVersionHelper.cs b/src/Microsoft.OpenApi.Hidi/OpenApiSpecVersionHelper.cs index 234298481..222f7a8c6 100644 --- a/src/Microsoft.OpenApi.Hidi/OpenApiSpecVersionHelper.cs +++ b/src/Microsoft.OpenApi.Hidi/OpenApiSpecVersionHelper.cs @@ -2,7 +2,6 @@ // Licensed under the MIT license. using System; -using System.Linq; namespace Microsoft.OpenApi.Hidi { @@ -14,17 +13,30 @@ public static OpenApiSpecVersion TryParseOpenApiSpecVersion(string value) { throw new InvalidOperationException("Please provide a version"); } - var res = value.Split('.', StringSplitOptions.RemoveEmptyEntries).FirstOrDefault(); + // Split the version string by the dot + var versionSegments = value.Split('.', StringSplitOptions.RemoveEmptyEntries); - if (int.TryParse(res, out var result)) + if (!int.TryParse(versionSegments[0], out var majorVersion) + || !int.TryParse(versionSegments[1], out var minorVersion)) { - if (result is >= 2 and < 3) - { - return OpenApiSpecVersion.OpenApi2_0; - } + throw new InvalidOperationException("Invalid version format. Please provide a valid OpenAPI version (e.g., 2.0, 3.0, 3.1)."); } - return OpenApiSpecVersion.OpenApi3_0; // default + // Check for specific version matches + if (majorVersion == 2) + { + return OpenApiSpecVersion.OpenApi2_0; + } + else if (majorVersion == 3 && minorVersion == 0) + { + return OpenApiSpecVersion.OpenApi3_0; + } + else if (majorVersion == 3 && minorVersion == 1) + { + return OpenApiSpecVersion.OpenApi3_1; + } + + return OpenApiSpecVersion.OpenApi3_1; // default } } }