Skip to content

Commit e407004

Browse files
authored
Merge pull request #6 from TassoDigital/adopt-param-objects
We've had a lot of trouble with params moving around as the underlyin…
2 parents d399bcc + 77b734e commit e407004

File tree

2 files changed

+30
-23
lines changed

2 files changed

+30
-23
lines changed

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/TypeScriptNestjsClientCodegen.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,7 @@ public Map<String, Object> postProcessOperationsWithModels(Map<String, Object> o
300300

301301
// Add the more complicated component instead of just the brace.
302302
CodegenParameter parameter = findPathParameterByName(op, parameterName.toString());
303+
pathBuffer.append("params.");
303304
pathBuffer.append(toVarName(parameterName.toString()));
304305
if (parameter != null && parameter.isDateTime) {
305306
pathBuffer.append(".toISOString()");

modules/openapi-generator/src/main/resources/typescript-nestjs/api.service.mustache

Lines changed: 29 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,13 @@ import { {{classname}}Interface } from './{{classFilename}}Interface';
1414
{{/withInterfaces}}
1515

1616
{{#operations}}
17-
17+
{{#operation}}
18+
type {{nickname}}Params = {
19+
{{#allParams}}
20+
{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}
21+
{{/allParams}}
22+
}
23+
{{/operation}}
1824
{{#description}}
1925
/**
2026
* {{&description}}
@@ -50,21 +56,21 @@ export class {{classname}} {
5056
/**
5157
* {{summary}}
5258
* {{notes}}
53-
{{#allParams}}* @param {{paramName}} {{description}}
54-
{{/allParams}}* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
59+
* @param {{nickname}}Params
60+
* @param observe set whether or not to return the data Observable as the body, response or events. defaults to returning the body.
5561
* @param reportProgress flag to report request and response progress.
5662
*/
57-
public {{nickname}}({{#allParams}}{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}{{/allParams}}): Observable<AxiosResponse<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>>;
58-
public {{nickname}}({{#allParams}}{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}{{/allParams}}): Observable<any> {
63+
public {{nickname}}(params: {{nickname}}Params): Observable<AxiosResponse<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>>;
64+
public {{nickname}}(params: {{nickname}}Params): Observable<any> {
5965
{{#allParams}}
6066

6167
{{#required}}
6268
{{#isConstEnumParam}}
6369
let {{paramName}} = {{{dataType}}};
6470
{{/isConstEnumParam}}
6571
{{^isConstEnumParam}}
66-
if ({{paramName}} === null || {{paramName}} === undefined) {
67-
throw new Error('Required parameter {{paramName}} was null or undefined when calling {{nickname}}.');
72+
if ( params.{{paramName}} === null || params.{{paramName}} === undefined) {
73+
throw new Error('Required parameter params.{{paramName}} was null or undefined when calling {{nickname}}.');
6874
}
6975
{{/isConstEnumParam}}
7076
{{/required}}
@@ -74,24 +80,24 @@ export class {{classname}} {
7480
let queryParameters = {};
7581
{{#queryParams}}
7682
{{#isListContainer}}
77-
if ({{paramName}}) {
83+
if ( params.{{paramName}}) {
7884
{{#isCollectionFormatMulti}}
79-
{{paramName}}.forEach((element) => {
85+
params.{{paramName}}.forEach((element) => {
8086
queryParameters.append('{{baseName}}', <any>element);
8187
})
8288
{{/isCollectionFormatMulti}}
8389
{{^isCollectionFormatMulti}}
84-
queryParameters['{{baseName}}'] = {{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']);
90+
queryParameters['{{baseName}}'] = params.{{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']);
8591
{{/isCollectionFormatMulti}}
8692
}
8793
{{/isListContainer}}
8894
{{^isListContainer}}
89-
if ({{paramName}} !== undefined && {{paramName}} !== null) {
95+
if (params.{{paramName}} !== undefined && params.{{paramName}} !== null) {
9096
{{#isDateTime}}
91-
queryParameters['{{baseName}}'] = (<any>{{paramName}} as any instanceof Date) ? ({{paramName}} as any).toISOString(): {{paramName}};
97+
queryParameters['{{baseName}}'] = (<any>params.{{paramName}} as any instanceof Date) ? (params.{{paramName}} as any).toISOString(): params.{{paramName}};
9298
{{/isDateTime}}
9399
{{^isDateTime}}
94-
queryParameters['{{baseName}}'] = <any>{{paramName}};
100+
queryParameters['{{baseName}}'] = <any>params.{{paramName}};
95101
{{/isDateTime}}
96102
}
97103
{{/isListContainer}}
@@ -101,13 +107,13 @@ export class {{classname}} {
101107
let headers = this.defaultHeaders;
102108
{{#headerParams}}
103109
{{#isListContainer}}
104-
if ({{paramName}}) {
105-
headers['{{baseName}}'] = {{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']);
110+
if (params.{{paramName}}) {
111+
headers['{{baseName}}'] = params.{{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']);
106112
}
107113
{{/isListContainer}}
108114
{{^isListContainer}}
109-
if ({{paramName}} !== undefined && {{paramName}} !== null) {
110-
headers['{{baseName}}'] = String({{paramName}});
115+
if (params.{{paramName}} !== undefined && params.{{paramName}} !== null) {
116+
headers['{{baseName}}'] = String(params.{{paramName}});
111117
}
112118
{{/isListContainer}}
113119
{{/headerParams}}
@@ -190,27 +196,27 @@ export class {{classname}} {
190196
{{#formParams}}
191197

192198
{{#isListContainer}}
193-
if ({{paramName}}) {
199+
if (params.{{paramName}}) {
194200
{{#isCollectionFormatMulti}}
195-
{{paramName}}.forEach((element) => {
201+
params.{{paramName}}.forEach((element) => {
196202
formParams.append('{{baseName}}', <any>element);
197203
})
198204
{{/isCollectionFormatMulti}}
199205
{{^isCollectionFormatMulti}}
200-
formParams.append('{{baseName}}', {{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']));
206+
formParams.append('{{baseName}}', params.{{paramName}}.join(COLLECTION_FORMATS['{{collectionFormat}}']));
201207
{{/isCollectionFormatMulti}}
202208
}
203209
{{/isListContainer}}
204210
{{^isListContainer}}
205-
if ({{paramName}} !== undefined) {
206-
formParams.append('{{baseName}}', <any>{{paramName}});
211+
if (params.{{paramName}} !== undefined) {
212+
formParams.append('{{baseName}}', <any>params.{{paramName}});
207213
}
208214
{{/isListContainer}}
209215
{{/formParams}}
210216

211217
{{/hasFormParams}}
212218
return this.httpClient.{{httpMethod}}{{^isResponseFile}}<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>{{/isResponseFile}}(`${this.basePath}{{{path}}}`,{{#isBodyAllowed}}
213-
{{#bodyParam}}{{paramName}}{{/bodyParam}}{{^bodyParam}}{{#hasFormParams}}convertFormParamsToString ? formParams.toString() : formParams{{/hasFormParams}}{{^hasFormParams}}null{{/hasFormParams}}{{/bodyParam}},{{/isBodyAllowed}}
219+
{{#bodyParam}}params.{{paramName}}{{/bodyParam}}{{^bodyParam}}{{#hasFormParams}}convertFormParamsToString ? formParams.toString() : formParams{{/hasFormParams}}{{^hasFormParams}}null{{/hasFormParams}}{{/bodyParam}},{{/isBodyAllowed}}
214220
{
215221
{{#hasQueryParams}}
216222
params: queryParameters,

0 commit comments

Comments
 (0)