From 4e0639f02e8f8d3261ef1ae8364de4d689247ac2 Mon Sep 17 00:00:00 2001 From: Daniel Mbaluka Date: Mon, 6 Dec 2021 12:36:15 +0300 Subject: [PATCH 1/3] Use input file OpenApi format as the default output format --- src/Microsoft.OpenApi.Hidi/OpenApiService.cs | 23 ++++++++++++++++---- src/Microsoft.OpenApi.Hidi/Program.cs | 2 +- 2 files changed, 20 insertions(+), 5 deletions(-) diff --git a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs index 8cf5bb60e..b426b1ae1 100644 --- a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs +++ b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs @@ -23,8 +23,8 @@ public static class OpenApiService public static void ProcessOpenApiDocument( string input, FileInfo output, - OpenApiSpecVersion version, - OpenApiFormat format, + OpenApiSpecVersion? version, + OpenApiFormat? format, string filterByOperationIds, string filterByTags, string filterByCollection, @@ -101,13 +101,16 @@ public static void ProcessOpenApiDocument( { ReferenceInline = inline ? ReferenceInlineSetting.InlineLocalReferences : ReferenceInlineSetting.DoNotInlineReferences }; - IOpenApiWriter writer = format switch + + var openApiFormat = format ?? GetOpenApiFormat(input); + var openApiVersion = version ?? result.OpenApiDiagnostic.SpecificationVersion; + IOpenApiWriter writer = openApiFormat switch { OpenApiFormat.Json => new OpenApiJsonWriter(textWriter, settings), OpenApiFormat.Yaml => new OpenApiYamlWriter(textWriter, settings), _ => throw new ArgumentException("Unknown format"), }; - document.Serialize(writer, version); + document.Serialize(writer, openApiVersion); textWriter.Flush(); } @@ -198,5 +201,17 @@ internal static void ValidateOpenApiDocument(string input) Console.WriteLine(statsVisitor.GetStatisticsReport()); } + + private static OpenApiFormat GetOpenApiFormat(string input) + { + if (!input.StartsWith("http") && Path.GetExtension(input) == ".json") + { + return OpenApiFormat.Json; + } + else + { + return OpenApiFormat.Yaml; + } + } } } diff --git a/src/Microsoft.OpenApi.Hidi/Program.cs b/src/Microsoft.OpenApi.Hidi/Program.cs index 099eb70df..b3752ef97 100644 --- a/src/Microsoft.OpenApi.Hidi/Program.cs +++ b/src/Microsoft.OpenApi.Hidi/Program.cs @@ -33,7 +33,7 @@ static async Task Main(string[] args) new Option("--filterByTags", "Filters OpenApiDocument by Tag(s) provided", typeof(string)), new Option("--filterByCollection", "Filters OpenApiDocument by Postman collection provided", typeof(string)) }; - transformCommand.Handler = CommandHandler.Create( + transformCommand.Handler = CommandHandler.Create( OpenApiService.ProcessOpenApiDocument); rootCommand.Add(transformCommand); From a06ab0c19b70450692cd0ee40105d492bc9bc736 Mon Sep 17 00:00:00 2001 From: Daniel Mbaluka Date: Sat, 22 Jan 2022 04:52:15 +0300 Subject: [PATCH 2/3] replace verbose if statement with ternary operator --- src/Microsoft.OpenApi.Hidi/OpenApiService.cs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs index b426b1ae1..abef3617f 100644 --- a/src/Microsoft.OpenApi.Hidi/OpenApiService.cs +++ b/src/Microsoft.OpenApi.Hidi/OpenApiService.cs @@ -204,14 +204,7 @@ internal static void ValidateOpenApiDocument(string input) private static OpenApiFormat GetOpenApiFormat(string input) { - if (!input.StartsWith("http") && Path.GetExtension(input) == ".json") - { - return OpenApiFormat.Json; - } - else - { - return OpenApiFormat.Yaml; - } + return !input.StartsWith("http") && Path.GetExtension(input) == ".json" ? OpenApiFormat.Json : OpenApiFormat.Yaml; } } } From ee1c4c6bd8a5d3b95a7b2c61384b06f7b3b70d9b Mon Sep 17 00:00:00 2001 From: Darrel Miller Date: Sat, 22 Jan 2022 13:19:49 -0500 Subject: [PATCH 3/3] Updated PublicApi file to no longer include ParseJsonCollectionFile --- test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt | 1 - 1 file changed, 1 deletion(-) diff --git a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt index cb2a133cf..f700fee15 100755 --- a/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt +++ b/test/Microsoft.OpenApi.Tests/PublicApi/PublicApi.approved.txt @@ -959,7 +959,6 @@ namespace Microsoft.OpenApi.Services public static Microsoft.OpenApi.Models.OpenApiDocument CreateFilteredDocument(Microsoft.OpenApi.Models.OpenApiDocument source, System.Func predicate) { } public static Microsoft.OpenApi.Services.OpenApiUrlTreeNode CreateOpenApiUrlTreeNode(System.Collections.Generic.Dictionary sources) { } public static System.Func CreatePredicate(string operationIds = null, string tags = null, System.Collections.Generic.Dictionary> requestUrls = null, Microsoft.OpenApi.Models.OpenApiDocument source = null) { } - public static System.Collections.Generic.Dictionary> ParseJsonCollectionFile(System.IO.Stream stream) { } } public class OpenApiReferenceError : Microsoft.OpenApi.Models.OpenApiError {