Skip to content

Commit 67485fe

Browse files
authored
Merge pull request #7 from MobileTeleSystems/feture/upd_sdk
Upd Sdk + fix NRE
2 parents adddbe7 + af6c187 commit 67485fe

File tree

5 files changed

+50
-17
lines changed

5 files changed

+50
-17
lines changed

ApiCodeGenerator.OpenApi.Refit.Tests/ApiCodeGenerator.OpenApi.Refit.Tests.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
</ItemGroup>
2020

2121
<ItemGroup>
22-
<PackageReference Include="ApiCodeGenerator.OpenApi.Sdk" Version="3.0.0-rc.18" />
22+
<PackageReference Include="ApiCodeGenerator.OpenApi.Sdk" Version="3.0.0-rc.44" />
2323
<PackageReference Include="NSwag.Core.Yaml" Version="14.0.2" />
2424
<PackageReference Include="NSwag.CodeGeneration.CSharp" Version="14.0.2" />
2525
<PackageReference Include="Microsoft.NET.Test.Sdk" Version="17.3.1" />

ApiCodeGenerator.OpenApi.Refit.Tests/FormDataTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,12 +56,12 @@ public async Task FormData()
5656
" /// <returns>valid input</returns>\n" +
5757
" /// <exception cref=\"Refit.ApiException\">A server side error occurred.</exception>\n" +
5858
" [Post(\"/test\")]\n" +
59-
$" System.Threading.Tasks.Task GetTest([Body(BodySerializationMethod.UrlEncoded)]GetTestFormData body);\n" +
59+
$" System.Threading.Tasks.Task GetTest([Body(BodySerializationMethod.UrlEncoded)]Body body);\n" +
6060
"\n" +
6161
" }\n";
6262
var expectedClassCode =
6363
$" {GENERATED_CODE}\n" +
64-
" public partial class GetTestFormData\n" +
64+
" public partial class Body\n" +
6565
" {\n" +
6666
" [Newtonsoft.Json.JsonProperty(\"testProp\", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]\n" +
6767
" public string TestProp { get; set; }\n" +

ApiCodeGenerator.OpenApi.Refit.Tests/FunctionalTests.cs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -483,6 +483,36 @@ public void GenerateClientInterface_NotBringDefaultParamsToEnd_IfOptParamDisable
483483
RunTest(settings, expected, "defaultParamTestSchema.json");
484484
}
485485

486+
[Test]
487+
public void ExcludeParam()
488+
{
489+
var settings = new RefitCodeGeneratorSettings
490+
{
491+
GenerateClientInterfaces = true,
492+
ExcludedParameterNames = [
493+
"paramWithDef"
494+
],
495+
CSharpGeneratorSettings = { Namespace = "TestNS" },
496+
};
497+
498+
var expected =
499+
" public partial interface IClient\n" +
500+
" {\n" +
501+
" /// <summary>\n" +
502+
" /// Test operation\n" +
503+
" /// </summary>\n" +
504+
" /// <param name=\"queryParametr\">Параметр передаваемый в строке запроса</param>\n" +
505+
" /// <returns>Запрос успешно принят</returns>\n" +
506+
" /// <exception cref=\"Refit.ApiException\">A server side error occurred.</exception>\n" +
507+
" [Get(\"/testService/testOper\")]\n" +
508+
" System.Threading.Tasks.Task<TestOperResponse> GetTestOper([Query]string queryParametr);\n" +
509+
"\n" +
510+
" }\n";
511+
512+
//Act & Assert
513+
RunTest(settings, expected, "defaultParamTestSchema.json");
514+
}
515+
486516
[Test]
487517
public void GenerateClientInterface_AuthHeaderParameter()
488518
{

ApiCodeGenerator.OpenApi.Refit/ApiCodeGenerator.OpenApi.Refit.csproj

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<Project Sdk="ApiCodeGenerator.OpenApi.Sdk/3.0.0-rc.18">
1+
<Project Sdk="ApiCodeGenerator.OpenApi.Sdk/3.0.0-rc.44">
22

33
<PropertyGroup>
44
<Description>Generates code for the Refit library from an OpenApi document.</Description>

ApiCodeGenerator.OpenApi.Refit/Model/RefitOperationModel.cs

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -178,24 +178,27 @@ internal void InitWrappedQueryParameters()
178178

179179
protected override string ResolveParameterType(OpenApiParameter parameter)
180180
{
181-
if (ConsumesFormUrlEncoded && parameter.Kind == OpenApiParameterKind.Body)
181+
if (Settings is not null)
182182
{
183-
var isNullable = parameter.IsRequired == false || parameter.IsNullable(Settings.CodeGeneratorSettings.SchemaType);
184-
var typeNameHint = $"{Id}FormData";
185-
return _resolver?.Resolve(parameter.ActualSchema, isNullable, typeNameHint);
186-
}
187-
188-
if (_resolver is not null && HasFormParameters)
189-
{
190-
var typeName = Settings.BinaryPartType;
191-
if (parameter.IsBinaryBodyParameter || parameter.ActualSchema.IsBinary)
183+
if (ConsumesFormUrlEncoded && parameter.Kind == OpenApiParameterKind.Body)
192184
{
193-
return typeName;
185+
var isNullable = parameter.IsRequired == false || parameter.IsNullable(Settings.CodeGeneratorSettings.SchemaType);
186+
var typeNameHint = $"{Id}FormData";
187+
return _resolver?.Resolve(parameter.ActualSchema, isNullable, typeNameHint);
194188
}
195189

196-
if (parameter.ActualSchema.IsArray && parameter.ActualSchema.Item.IsBinary)
190+
if (_resolver is not null && HasFormParameters)
197191
{
198-
return $"{Settings.CSharpGeneratorSettings.ArrayType}<{typeName}>";
192+
var typeName = Settings.BinaryPartType;
193+
if (parameter.IsBinaryBodyParameter || parameter.ActualSchema.IsBinary)
194+
{
195+
return typeName;
196+
}
197+
198+
if (parameter.ActualSchema.IsArray && parameter.ActualSchema.Item.IsBinary)
199+
{
200+
return $"{Settings.CSharpGeneratorSettings.ArrayType}<{typeName}>";
201+
}
199202
}
200203
}
201204

0 commit comments

Comments
 (0)