From 97da252460c9d6bcec0c70793d1d6a9df09c0388 Mon Sep 17 00:00:00 2001 From: Vincent Biret Date: Mon, 7 Jun 2021 11:16:19 -0400 Subject: [PATCH] - partial #219, #220, #221 excludes unsupported request content types via configuration --- src/Kiota.Builder/GenerationConfiguration.cs | 1 + src/Kiota.Builder/KiotaBuilder.cs | 5 ++++- src/kiota/appsettings.json | 4 ++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Kiota.Builder/GenerationConfiguration.cs b/src/Kiota.Builder/GenerationConfiguration.cs index 66721c76b5..040c0a4a97 100644 --- a/src/Kiota.Builder/GenerationConfiguration.cs +++ b/src/Kiota.Builder/GenerationConfiguration.cs @@ -9,5 +9,6 @@ public class GenerationConfiguration { public GenerationLanguage Language { get; set; } = GenerationLanguage.CSharp; public string ApiRootUrl { get; set; } = "https://graph.microsoft.com/v1.0"; public List PropertiesPrefixToStrip { get; set; } = new() { "@odata."}; + public HashSet IgnoredRequestContentTypes { get; set; } = new(); } } diff --git a/src/Kiota.Builder/KiotaBuilder.cs b/src/Kiota.Builder/KiotaBuilder.cs index e3b179dd0a..30a5085146 100644 --- a/src/Kiota.Builder/KiotaBuilder.cs +++ b/src/Kiota.Builder/KiotaBuilder.cs @@ -262,7 +262,10 @@ private void CreateRequestBuilderClass(CodeNamespace currentNamespace, OpenApiUr // Add methods for Operations if (currentNode.HasOperations(Constants.DefaultOpenApiLabel)) { - foreach(var operation in currentNode.PathItems[Constants.DefaultOpenApiLabel].Operations) + foreach(var operation in currentNode + .PathItems[Constants.DefaultOpenApiLabel] + .Operations + .Where(x => x.Value.RequestBody?.Content?.Any(y => !this.config.IgnoredRequestContentTypes.Contains(y.Key)) ?? true)) CreateOperationMethods(currentNode, operation.Key, operation.Value, codeClass); } CreatePathManagement(codeClass, currentNode, isRootClientClass); diff --git a/src/kiota/appsettings.json b/src/kiota/appsettings.json index 882248cf8b..d807077707 100644 --- a/src/kiota/appsettings.json +++ b/src/kiota/appsettings.json @@ -1,4 +1,8 @@ { + "IgnoredRequestContentTypes": [ + "multipart/form-data", + "application/x-www-form-urlencoded" + ], "Logging": { "LogLevel": { "Default": "Debug"