Skip to content

Commit 4437a9e

Browse files
committed
fix: pass Option[String] directly to .header
1 parent a0443cc commit 4437a9e

3 files changed

Lines changed: 23 additions & 5 deletions

File tree

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

Lines changed: 21 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,16 @@ public ModelsMap postProcessModels(ModelsMap objs) {
226226
return objs;
227227
}
228228

229+
private void setParameterDefaults(CodegenParameter param) {
230+
// Set default values for optional parameters
231+
// Template will handle Option[] wrapping, so all defaults should be None
232+
if (!param.required) {
233+
param.defaultValue = "None";
234+
}
235+
}
236+
237+
238+
229239
/**
230240
* Invoked by {@link DefaultGenerator} after all models have been post-processed,
231241
* allowing for a last pass of codegen-specific model cleanup.
@@ -445,6 +455,14 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List<Mo
445455
}
446456
objs.setImports(newImports);
447457

458+
// Fix parameter types and defaults
459+
OperationMap opsMap = objs.getOperations();
460+
for (CodegenOperation operation : opsMap.getOperation()) {
461+
for (CodegenParameter param : operation.allParams) {
462+
setParameterDefaults(param);
463+
}
464+
}
465+
448466
return super.postProcessOperationsWithModels(objs, allModels);
449467
}
450468

@@ -498,11 +516,11 @@ public String toDefaultValue(Schema p) {
498516
String inner = getSchemaType(ModelUtils.getAdditionalProperties(p));
499517
return "Map[String, " + inner + "].empty ";
500518
} else if (ModelUtils.isArraySchema(p)) {
501-
String inner = getSchemaType(ModelUtils.getSchemaItems(p));
519+
// Use simple Seq.empty for cleaner code
502520
if (ModelUtils.isSet(p)) {
503-
return "Set[" + inner + "].empty ";
521+
return "Set.empty";
504522
}
505-
return "Seq[" + inner + "].empty ";
523+
return "Seq.empty";
506524
} else if (ModelUtils.isStringSchema(p)) {
507525
return null;
508526
} else {
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
{{#authMethods.0}}{{#authMethods}}{{#isApiKey}}{{#isKeyInHeader}}apiKeyHeader: String{{/isKeyInHeader}}{{#isKeyInQuery}}apiKeyQuery: String{{/isKeyInQuery}}{{#isKeyInCookie}}apiKeyCookie: String{{/isKeyInCookie}}{{/isApiKey}}{{#isBasic}}{{#isBasicBasic}}username: String, password: String{{/isBasicBasic}}{{#isBasicBearer}}bearerToken: String{{/isBasicBearer}}{{/isBasic}}{{^-last}}, {{/-last}}{{/authMethods}})({{/authMethods.0}}{{#allParams}}{{paramName}}: {{#required}}{{dataType}}{{/required}}{{^required}}{{#isContainer}}{{dataType}}{{/isContainer}}{{^isContainer}}Option[{{dataType}}]{{/isContainer}}{{/required}}{{^defaultValue}}{{^required}}{{^isContainer}} = None{{/isContainer}}{{/required}}{{/defaultValue}}{{^-last}}, {{/-last}}{{/allParams}}
1+
{{#authMethods.0}}{{#authMethods}}{{#isApiKey}}{{#isKeyInHeader}}apiKeyHeader: String{{/isKeyInHeader}}{{#isKeyInQuery}}apiKeyQuery: String{{/isKeyInQuery}}{{#isKeyInCookie}}apiKeyCookie: String{{/isKeyInCookie}}{{/isApiKey}}{{#isBasic}}{{#isBasicBasic}}username: String, password: String{{/isBasicBasic}}{{#isBasicBearer}}bearerToken: String{{/isBasicBearer}}{{/isBasic}}{{^-last}}, {{/-last}}{{/authMethods}})({{/authMethods.0}}{{#allParams}}{{paramName}}: {{#required}}{{dataType}}{{/required}}{{^required}}Option[{{dataType}}]{{/required}}{{#defaultValue}} = {{{defaultValue}}}{{/defaultValue}}{{^-last}}, {{/-last}}{{/allParams}}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
"{{baseName}}", {{#isContainer}}{{{paramName}}}.mkString(","){{/isContainer}}{{^isContainer}}{{{paramName}}}{{/isContainer}}.toString
1+
"{{baseName}}", {{#isContainer}}{{#required}}{{{paramName}}}.mkString(","){{/required}}{{^required}}{{{paramName}}}.filter(_.nonEmpty).map(_.mkString(",")){{/required}}{{/isContainer}}{{^isContainer}}{{#required}}{{{paramName}}}.toString{{/required}}{{^required}}{{{paramName}}}{{/required}}{{/isContainer}}

0 commit comments

Comments
 (0)