Skip to content

Commit 9544f72

Browse files
authored
Merge pull request #8453 from kunal-pmj/fix-singleton-query-parameter
Fix for Issue #8339
2 parents 616f8c1 + 34ec397 commit 9544f72

File tree

9 files changed

+894
-5
lines changed

9 files changed

+894
-5
lines changed

modules/swagger-codegen/src/main/java/io/swagger/codegen/CodegenParameter.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ public class CodegenParameter {
1717
public boolean isString, isNumeric, isInteger, isLong, isNumber, isFloat, isDouble, isByteArray, isBinary, isBoolean, isDate, isDateTime, isUuid;
1818
public boolean isListContainer, isMapContainer;
1919
public boolean isFile, notFile;
20-
public boolean isEnum;
20+
public boolean isEnum, isConstEnumParam;
2121
public List<String> _enum;
2222
public Map<String, Object> allowableValues;
2323
public CodegenProperty items;
@@ -119,6 +119,7 @@ public CodegenParameter copy() {
119119
output.isEnum = this.isEnum;
120120
if (this._enum != null) {
121121
output._enum = new ArrayList<String>(this._enum);
122+
this.isConstEnumParam = (this._enum.size() == 1 && this.required);
122123
}
123124
if (this.allowableValues != null) {
124125
output.allowableValues = new HashMap<String, Object>(this.allowableValues);

modules/swagger-codegen/src/main/resources/typescript-angular/api.service.mustache

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,19 +124,25 @@ export class {{classname}} {
124124
* @param reportProgress flag to report request and response progress.{{/useHttpClient}}
125125
*/
126126
{{#useHttpClient}}
127-
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}observe?: 'body', reportProgress?: boolean): Observable<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>;
128-
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>>;
129-
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>>;
130-
public {{nickname}}({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
127+
public {{nickname}}({{#allParams}}{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}{{/allParams}}observe?: 'body', reportProgress?: boolean): Observable<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>;
128+
public {{nickname}}({{#allParams}}{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}{{/allParams}}observe?: 'response', reportProgress?: boolean): Observable<HttpResponse<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>>;
129+
public {{nickname}}({{#allParams}}{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}{{/allParams}}observe?: 'events', reportProgress?: boolean): Observable<HttpEvent<{{#returnType}}{{{returnType}}}{{#isResponseTypeFile}}|undefined{{/isResponseTypeFile}}{{/returnType}}{{^returnType}}any{{/returnType}}>>;
130+
public {{nickname}}({{#allParams}}{{^isConstEnumParam}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/isConstEnumParam}}{{/allParams}}observe: any = 'body', reportProgress: boolean = false ): Observable<any> {
131131
{{/useHttpClient}}
132132
{{^useHttpClient}}
133133
public {{nickname}}WithHttpInfo({{#allParams}}{{paramName}}{{^required}}?{{/required}}: {{{dataType}}}, {{/allParams}}extraHttpRequestParams?: RequestOptionsArgs): Observable<Response> {
134134
{{/useHttpClient}}
135135
{{#allParams}}
136+
136137
{{#required}}
138+
{{#isConstEnumParam}}
139+
let {{paramName}} = {{{dataType}}};
140+
{{/isConstEnumParam}}
141+
{{^isConstEnumParam}}
137142
if ({{paramName}} === null || {{paramName}} === undefined) {
138143
throw new Error('Required parameter {{paramName}} was null or undefined when calling {{nickname}}.');
139144
}
145+
{{/isConstEnumParam}}
140146
{{/required}}
141147
{{/allParams}}
142148

0 commit comments

Comments
 (0)