Skip to content

Commit 67a0770

Browse files
committed
refactor duplicate apis
1 parent 36bc084 commit 67a0770

3 files changed

Lines changed: 210 additions & 54 deletions

File tree

modules/openapi-generator/src/main/resources/csharp/libraries/generichost/api.mustache

Lines changed: 38 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -61,11 +61,11 @@ namespace {{packageName}}.{{apiPackage}}
6161
/// <param name="{{paramName}}">{{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}{{#isDeprecated}} (deprecated){{/isDeprecated}}</param>
6262
{{/allParams}}
6363
/// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
64-
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{operationId}}ApiResponse"/>&gt;</returns>
64+
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse"/>&gt;</returns>
6565
{{#isDeprecated}}
6666
[Obsolete]
6767
{{/isDeprecated}}
68-
Task<{{interfacePrefix}}{{operationId}}ApiResponse> {{operationId}}Async({{>OperationSignature}});
68+
Task<{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse> {{operationId}}Async({{>OperationSignature}});
6969

7070
/// <summary>
7171
/// {{summary}}
@@ -77,25 +77,31 @@ namespace {{packageName}}.{{apiPackage}}
7777
/// <param name="{{paramName}}">{{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}{{#isDeprecated}} (deprecated){{/isDeprecated}}</param>
7878
{{/allParams}}
7979
/// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
80-
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{operationId}}ApiResponse"/>{{nrt?}}&gt;</returns>
80+
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse"/>{{nrt?}}&gt;</returns>
8181
{{#isDeprecated}}
8282
[Obsolete]
8383
{{/isDeprecated}}
84-
Task<{{interfacePrefix}}{{operationId}}ApiResponse{{nrt?}}> {{operationId}}OrDefaultAsync({{>OperationSignature}});
84+
Task<{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse{{nrt?}}> {{operationId}}OrDefaultAsync({{>OperationSignature}});
8585
{{^-last}}
8686

8787
{{/-last}}
8888
{{/operation}}
8989
}
9090
{{#operation}}
91-
{{^vendorExtensions.x-duplicates}}
91+
{{#lambda.copy}}
92+
{{#lambda.trim}}
93+
{{#vendorExtensions.x-duplicates}}
94+
{{classname}}
95+
{{/vendorExtensions.x-duplicates}}
96+
{{/lambda.trim}}
97+
{{/lambda.copy}}
9298
{{#responses}}
9399
{{#-first}}
94100

95101
/// <summary>
96-
/// The <see cref="{{interfacePrefix}}{{operationId}}ApiResponse"/>
102+
/// The <see cref="{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse"/>
97103
/// </summary>
98-
{{>visibility}} interface {{interfacePrefix}}{{operationId}}ApiResponse : {{#lambda.joinWithComma}}{{packageName}}.{{clientPackage}}.{{interfacePrefix}}ApiResponse {{#responses}}{{#dataType}}{{interfacePrefix}}{{vendorExtensions.x-http-status}}<{{#isModel}}{{^containerType}}{{packageName}}.{{modelPackage}}.{{/containerType}}{{/isModel}}{{{dataType}}}{{#nrt}}?{{/nrt}}{{^nrt}}{{#vendorExtensions.x-is-value-type}}?{{/vendorExtensions.x-is-value-type}}{{/nrt}}> {{/dataType}}{{/responses}}{{/lambda.joinWithComma}}
104+
{{>visibility}} interface {{interfacePrefix}}{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse : {{#lambda.joinWithComma}}{{packageName}}.{{clientPackage}}.{{interfacePrefix}}ApiResponse {{#responses}}{{#dataType}}{{interfacePrefix}}{{vendorExtensions.x-http-status}}<{{#isModel}}{{^containerType}}{{packageName}}.{{modelPackage}}.{{/containerType}}{{/isModel}}{{{dataType}}}{{#nrt}}?{{/nrt}}{{^nrt}}{{#vendorExtensions.x-is-value-type}}?{{/vendorExtensions.x-is-value-type}}{{/nrt}}> {{/dataType}}{{/responses}}{{/lambda.joinWithComma}}
99105
{
100106
{{#responses}}
101107
{{#vendorExtensions.x-http-status-is-default}}
@@ -119,7 +125,6 @@ namespace {{packageName}}.{{apiPackage}}
119125
}
120126
{{/-first}}
121127
{{/responses}}
122-
{{/vendorExtensions.x-duplicates}}
123128
{{/operation}}
124129

125130
/// <summary>
@@ -139,7 +144,7 @@ namespace {{packageName}}.{{apiPackage}}
139144
/// </summary>
140145
public event EventHandler<ExceptionEventArgs>{{nrt?}} OnError{{operationId}};
141146

142-
internal void ExecuteOn{{operationId}}({{#vendorExtensions.x-duplicates}}{{.}}{{/vendorExtensions.x-duplicates}}{{^vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}.{{operationId}}ApiResponse apiResponse)
147+
internal void ExecuteOn{{operationId}}({{classname}}.{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse apiResponse)
143148
{
144149
On{{operationId}}?.Invoke(this, new ApiResponseEventArgs(apiResponse));
145150
}
@@ -288,7 +293,7 @@ namespace {{packageName}}.{{apiPackage}}
288293
{{#allParams}}
289294
/// <param name="{{paramName}}"></param>
290295
{{/allParams}}
291-
private void After{{operationId}}DefaultImplementation({{#lambda.joinWithComma}}{{interfacePrefix}}{{operationId}}ApiResponse apiResponseLocalVar {{#allParams}}{{^required}}Option<{{/required}}{{>OperationDataType}}{{^required}}>{{/required}} {{paramName}} {{/allParams}}{{/lambda.joinWithComma}})
296+
private void After{{operationId}}DefaultImplementation({{#lambda.joinWithComma}}{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse apiResponseLocalVar {{#allParams}}{{^required}}Option<{{/required}}{{>OperationDataType}}{{^required}}>{{/required}} {{paramName}} {{/allParams}}{{/lambda.joinWithComma}})
292297
{
293298
bool suppressDefaultLog = false;
294299
After{{operationId}}({{#lambda.joinWithComma}}ref suppressDefaultLog apiResponseLocalVar {{#allParams}}{{paramName}} {{/allParams}}{{/lambda.joinWithComma}});
@@ -303,7 +308,7 @@ namespace {{packageName}}.{{apiPackage}}
303308
{{#allParams}}
304309
/// <param name="{{paramName}}"></param>
305310
{{/allParams}}
306-
partial void After{{operationId}}({{#lambda.joinWithComma}}ref bool suppressDefaultLog {{interfacePrefix}}{{operationId}}ApiResponse apiResponseLocalVar {{#allParams}}{{^required}}Option<{{/required}}{{>OperationDataType}}{{^required}}>{{/required}} {{paramName}} {{/allParams}}{{/lambda.joinWithComma}});
311+
partial void After{{operationId}}({{#lambda.joinWithComma}}ref bool suppressDefaultLog {{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse apiResponseLocalVar {{#allParams}}{{^required}}Option<{{/required}}{{>OperationDataType}}{{^required}}>{{/required}} {{paramName}} {{/allParams}}{{/lambda.joinWithComma}});
307312

308313
/// <summary>
309314
/// Logs exceptions that occur while retrieving the server response
@@ -341,8 +346,8 @@ namespace {{packageName}}.{{apiPackage}}
341346
/// <param name="{{paramName}}">{{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}</param>
342347
{{/allParams}}
343348
/// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
344-
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{operationId}}ApiResponse"/>&gt;</returns>
345-
public async Task<{{interfacePrefix}}{{operationId}}ApiResponse{{nrt?}}> {{operationId}}OrDefaultAsync({{>OperationSignature}})
349+
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse"/>&gt;</returns>
350+
public async Task<{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse{{nrt?}}> {{operationId}}OrDefaultAsync({{>OperationSignature}})
346351
{
347352
try
348353
{
@@ -362,8 +367,8 @@ namespace {{packageName}}.{{apiPackage}}
362367
/// <param name="{{paramName}}">{{description}}{{^required}} (optional{{#defaultValue}}, default to {{.}}{{/defaultValue}}){{/required}}</param>
363368
{{/allParams}}
364369
/// <param name="cancellationToken">Cancellation Token to cancel the request.</param>
365-
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{operationId}}ApiResponse"/>&gt;</returns>
366-
public async Task<{{interfacePrefix}}{{operationId}}ApiResponse> {{operationId}}Async({{>OperationSignature}})
370+
/// <returns><see cref="Task"/>&lt;<see cref="{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse"/>&gt;</returns>
371+
public async Task<{{interfacePrefix}}{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse> {{operationId}}Async({{>OperationSignature}})
367372
{
368373
{{#lambda.trimLineBreaks}}
369374
UriBuilder uriBuilderLocalVar = new UriBuilder();
@@ -716,8 +721,8 @@ namespace {{packageName}}.{{apiPackage}}
716721

717722
using (HttpResponseMessage httpResponseMessageLocalVar = await HttpClient.SendAsync(httpRequestMessageLocalVar, cancellationToken).ConfigureAwait(false))
718723
{
719-
ILogger<{{#vendorExtensions.x-duplicates}}{{.}}.{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse> apiResponseLoggerLocalVar = LoggerFactory.CreateLogger<{{#vendorExtensions.x-duplicates}}{{.}}.{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse>();
720-
{{#vendorExtensions.x-duplicates}}{{.}}.{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse apiResponseLocalVar;
724+
ILogger<{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse> apiResponseLoggerLocalVar = LoggerFactory.CreateLogger<{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse>();
725+
{{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse apiResponseLocalVar;
721726

722727
switch ((int)httpResponseMessageLocalVar.StatusCode) {
723728
{{#responses}}
@@ -731,7 +736,7 @@ namespace {{packageName}}.{{apiPackage}}
731736
{
732737
byte[] responseBytesArrayLocalVar = await httpResponseMessageLocalVar.Content.ReadAsByteArrayAsync({{#net60OrLater}}cancellationToken{{/net60OrLater}}).ConfigureAwait(false);
733738
System.IO.Stream responseContentStreamLocalVar = new System.IO.MemoryStream(responseBytesArrayLocalVar);
734-
apiResponseLocalVar = new{{^net60OrLater}} {{operationId}}ApiResponse{{/net60OrLater}}(apiResponseLoggerLocalVar, httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentStreamLocalVar, "{{{path}}}", requestedAtLocalVar, _jsonSerializerOptions);
739+
apiResponseLocalVar = new{{^net60OrLater}} {{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse{{/net60OrLater}}(apiResponseLoggerLocalVar, httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentStreamLocalVar, "{{{path}}}", requestedAtLocalVar, _jsonSerializerOptions);
735740

736741
break;
737742
}
@@ -740,7 +745,7 @@ namespace {{packageName}}.{{apiPackage}}
740745
{{/responses}}
741746
default: {
742747
string responseContentLocalVar = await httpResponseMessageLocalVar.Content.ReadAsStringAsync({{#net60OrLater}}cancellationToken{{/net60OrLater}}).ConfigureAwait(false);
743-
apiResponseLocalVar = new{{^net60OrLater}} {{operationId}}ApiResponse{{/net60OrLater}}(apiResponseLoggerLocalVar, httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentLocalVar, "{{{path}}}", requestedAtLocalVar, _jsonSerializerOptions);
748+
apiResponseLocalVar = new{{^net60OrLater}} {{#vendorExtensions.x-duplicates}}{{classname}}{{/vendorExtensions.x-duplicates}}{{operationId}}ApiResponse{{/net60OrLater}}(apiResponseLoggerLocalVar, httpRequestMessageLocalVar, httpResponseMessageLocalVar, responseContentLocalVar, "{{{path}}}", requestedAtLocalVar, _jsonSerializerOptions);
744749

745750
break;
746751
}
@@ -803,22 +808,28 @@ namespace {{packageName}}.{{apiPackage}}
803808
}
804809
{{/lambda.trimLineBreaks}}
805810
}
806-
{{^vendorExtensions.x-duplicates}}
811+
{{#lambda.copy}}
812+
{{#lambda.trim}}
813+
{{#vendorExtensions.x-duplicates}}
814+
{{classname}}
815+
{{/vendorExtensions.x-duplicates}}
816+
{{/lambda.trim}}
817+
{{/lambda.copy}}
807818
{{#responses}}
808819
{{#-first}}
809820

810821
/// <summary>
811-
/// The <see cref="{{operationId}}ApiResponse"/>
822+
/// The <see cref="{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse"/>
812823
/// </summary>
813-
{{>visibility}} partial class {{operationId}}ApiResponse : {{packageName}}.{{clientPackage}}.ApiResponse, {{interfacePrefix}}{{operationId}}ApiResponse
824+
{{>visibility}} partial class {{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse : {{packageName}}.{{clientPackage}}.ApiResponse, {{interfacePrefix}}{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse
814825
{
815826
/// <summary>
816827
/// The logger
817828
/// </summary>
818-
public ILogger<{{operationId}}ApiResponse> Logger { get; }
829+
public ILogger<{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse> Logger { get; }
819830

820831
/// <summary>
821-
/// The <see cref="{{operationId}}ApiResponse"/>
832+
/// The <see cref="{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse"/>
822833
/// </summary>
823834
/// <param name="logger"></param>
824835
/// <param name="httpRequestMessage"></param>
@@ -827,14 +838,14 @@ namespace {{packageName}}.{{apiPackage}}
827838
/// <param name="path"></param>
828839
/// <param name="requestedAt"></param>
829840
/// <param name="jsonSerializerOptions"></param>
830-
public {{operationId}}ApiResponse(ILogger<{{operationId}}ApiResponse> logger, System.Net.Http.HttpRequestMessage httpRequestMessage, System.Net.Http.HttpResponseMessage httpResponseMessage, string rawContent, string path, DateTime requestedAt, System.Text.Json.JsonSerializerOptions jsonSerializerOptions) : base(httpRequestMessage, httpResponseMessage, rawContent, path, requestedAt, jsonSerializerOptions)
841+
public {{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse(ILogger<{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse> logger, System.Net.Http.HttpRequestMessage httpRequestMessage, System.Net.Http.HttpResponseMessage httpResponseMessage, string rawContent, string path, DateTime requestedAt, System.Text.Json.JsonSerializerOptions jsonSerializerOptions) : base(httpRequestMessage, httpResponseMessage, rawContent, path, requestedAt, jsonSerializerOptions)
831842
{
832843
Logger = logger;
833844
OnCreated(httpRequestMessage, httpResponseMessage);
834845
}
835846

836847
/// <summary>
837-
/// The <see cref="{{operationId}}ApiResponse"/>
848+
/// The <see cref="{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse"/>
838849
/// </summary>
839850
/// <param name="logger"></param>
840851
/// <param name="httpRequestMessage"></param>
@@ -843,7 +854,7 @@ namespace {{packageName}}.{{apiPackage}}
843854
/// <param name="path"></param>
844855
/// <param name="requestedAt"></param>
845856
/// <param name="jsonSerializerOptions"></param>
846-
public {{operationId}}ApiResponse(ILogger<{{operationId}}ApiResponse> logger, System.Net.Http.HttpRequestMessage httpRequestMessage, System.Net.Http.HttpResponseMessage httpResponseMessage, System.IO.Stream contentStream, string path, DateTime requestedAt, System.Text.Json.JsonSerializerOptions jsonSerializerOptions) : base(httpRequestMessage, httpResponseMessage, contentStream, path, requestedAt, jsonSerializerOptions)
857+
public {{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse(ILogger<{{#lambda.paste}}{{/lambda.paste}}{{operationId}}ApiResponse> logger, System.Net.Http.HttpRequestMessage httpRequestMessage, System.Net.Http.HttpResponseMessage httpResponseMessage, System.IO.Stream contentStream, string path, DateTime requestedAt, System.Text.Json.JsonSerializerOptions jsonSerializerOptions) : base(httpRequestMessage, httpResponseMessage, contentStream, path, requestedAt, jsonSerializerOptions)
847858
{
848859
Logger = logger;
849860
OnCreated(httpRequestMessage, httpResponseMessage);
@@ -932,7 +943,6 @@ namespace {{packageName}}.{{apiPackage}}
932943
}
933944
{{/-first}}
934945
{{/responses}}
935-
{{/vendorExtensions.x-duplicates}}
936946
{{/operation}}
937947
}
938948
{{/operations}}

0 commit comments

Comments
 (0)