Skip to content

Commit 2477e31

Browse files
Fix codegen
1 parent 14f4517 commit 2477e31

File tree

3 files changed

+32
-23
lines changed

3 files changed

+32
-23
lines changed

RestClient.Net.OpenApiGenerator.Tests/OpenApiCodeGeneratorTests.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -263,10 +263,10 @@ public void Generate_HandlesPathAndQueryParametersTogether()
263263
);
264264

265265
Assert.IsTrue(
266-
result.ExtensionMethodsCode.Contains("string api_key")
266+
result.ExtensionMethodsCode.Contains("string apiKey")
267267
&& result.ExtensionMethodsCode.Contains("long petId")
268268
);
269-
Assert.IsTrue(result.ExtensionMethodsCode.Contains("?api_key={param.api_key}"));
269+
Assert.IsTrue(result.ExtensionMethodsCode.Contains("?api_key={param.apiKey}"));
270270
}
271271

272272
[TestMethod]

RestClient.Net.OpenApiGenerator/ExtensionMethodGenerator.cs

Lines changed: 20 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,10 @@ public static (string ExtensionMethods, string TypeAliases) GenerateExtensionMet
6767
var namingPolicyCode = jsonNamingPolicy switch
6868
{
6969
var s when s.Equals("PascalCase", StringComparison.OrdinalIgnoreCase) => "null",
70-
var s when s.Equals("snake_case", StringComparison.OrdinalIgnoreCase)
71-
|| s.Equals("snakecase", StringComparison.OrdinalIgnoreCase) => "JsonNamingPolicy.SnakeCaseLower",
70+
var s
71+
when s.Equals("snake_case", StringComparison.OrdinalIgnoreCase)
72+
|| s.Equals("snakecase", StringComparison.OrdinalIgnoreCase) =>
73+
"JsonNamingPolicy.SnakeCaseLower",
7274
_ => "JsonNamingPolicy.CamelCase",
7375
};
7476

@@ -217,7 +219,7 @@ private static (string PublicMethod, string PrivateDelegate) GenerateHttpMethod(
217219
HttpMethod operationType,
218220
string methodName,
219221
string path,
220-
List<(string Name, string Type, bool IsPath)> parameters,
222+
List<(string Name, string Type, bool IsPath, string OriginalName)> parameters,
221223
string? requestBodyType,
222224
string responseType,
223225
string summary
@@ -240,7 +242,7 @@ string summary
240242
var deserializer =
241243
responseType == "string" ? "DeserializeString" : $"DeserializeJson<{responseType}>";
242244
var queryString = hasQueryParams
243-
? "?" + string.Join("&", queryParams.Select(q => $"{q.Name}={{{q.Name}}}"))
245+
? "?" + string.Join("&", queryParams.Select(q => $"{q.OriginalName}={{{q.Name}}}"))
244246
: string.Empty;
245247

246248
var verb =
@@ -320,8 +322,12 @@ string summary
320322
var paramInvocation = isSingleParam ? queryParamsNames : $"({queryParamsNames})";
321323
var deserializeMethod = isDelete ? "_deserializeUnit" : deserializer;
322324
var queryStringWithParam = isSingleParam
323-
? "?" + string.Join("&", queryParams.Select(q => $"{q.Name}={{param}}"))
324-
: "?" + string.Join("&", queryParams.Select(q => $"{q.Name}={{param.{q.Name}}}"));
325+
? "?" + string.Join("&", queryParams.Select(q => $"{q.OriginalName}={{param}}"))
326+
: "?"
327+
+ string.Join(
328+
"&",
329+
queryParams.Select(q => $"{q.OriginalName}={{param.{q.Name}}}")
330+
);
325331

326332
var privateDelegate = $$"""
327333
private static {{delegateType}}<{{resultResponseType}}, string, {{queryParamsType}}> {{privateFunctionName}} { get; } =
@@ -369,9 +375,12 @@ string summary
369375
var deserializeMethod = isDelete ? "_deserializeUnit" : deserializer;
370376
var queryStringWithParam =
371377
isSingleParam && queryParams.Count == 1
372-
? "?" + string.Join("&", queryParams.Select(q => $"{q.Name}={{param}}"))
378+
? "?" + string.Join("&", queryParams.Select(q => $"{q.OriginalName}={{param}}"))
373379
: "?"
374-
+ string.Join("&", queryParams.Select(q => $"{q.Name}={{param.{q.Name}}}"));
380+
+ string.Join(
381+
"&",
382+
queryParams.Select(q => $"{q.OriginalName}={{param.{q.Name}}}")
383+
);
375384
var pathWithParam =
376385
isSingleParam && hasPathParams
377386
? pathExpression.Replace(
@@ -484,11 +493,11 @@ string path
484493
return $"{methodName}{CodeGenerationHelpers.ToPascalCase(pathPart)}";
485494
}
486495

487-
private static List<(string Name, string Type, bool IsPath)> GetParameters(
496+
private static List<(string Name, string Type, bool IsPath, string OriginalName)> GetParameters(
488497
OpenApiOperation operation
489498
)
490499
{
491-
var parameters = new List<(string Name, string Type, bool IsPath)>();
500+
var parameters = new List<(string Name, string Type, bool IsPath, string OriginalName)>();
492501

493502
if (operation.Parameters == null)
494503
{
@@ -505,7 +514,7 @@ OpenApiOperation operation
505514
var isPath = param.In == ParameterLocation.Path;
506515
var type = ModelGenerator.MapOpenApiType(param.Schema);
507516
var sanitizedName = CodeGenerationHelpers.ToCamelCase(param.Name);
508-
parameters.Add((sanitizedName, type, isPath));
517+
parameters.Add((sanitizedName, type, isPath, param.Name));
509518
}
510519

511520
return parameters;

0 commit comments

Comments
 (0)