forked from loafle/openapi-generator-original
[k6] bugfixes to improve the output script (#5614)
* [k6] Skip appDescription escaping * [k6] Fix variable identifier in output * [k6] Fix bug with reserved words handling
This commit is contained in:
parent
4de97a47e3
commit
b3b3941d09
@ -377,14 +377,14 @@ public class K6ClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
for (io.swagger.v3.oas.models.parameters.Parameter parameter : operation.getParameters()) {
|
||||
switch (parameter.getIn()) {
|
||||
case "header":
|
||||
httpParams.add(new Parameter(parameter.getName(), getTemplateString(parameter.getName())));
|
||||
extraParameters.add(new Parameter(parameter.getName(), parameter.getName().toUpperCase(Locale.ROOT)));
|
||||
httpParams.add(new Parameter(parameter.getName(), getTemplateString(toVarName(parameter.getName()))));
|
||||
extraParameters.add(new Parameter(toVarName(parameter.getName()), parameter.getName().toUpperCase(Locale.ROOT)));
|
||||
break;
|
||||
case "path":
|
||||
case "query":
|
||||
if (parameter.getIn().equals("query"))
|
||||
queryParams.add(new Parameter(parameter.getName(), getVariable(parameter.getName())));
|
||||
variables.add(new Parameter(parameter.getName(), parameter.getName().toUpperCase(Locale.ROOT)));
|
||||
queryParams.add(new Parameter(parameter.getName(), getTemplateVariable(parameter.getName())));
|
||||
variables.add(new Parameter(toVarName(parameter.getName()), parameter.getName().toUpperCase(Locale.ROOT)));
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
@ -446,12 +446,67 @@ public class K6ClientCodegen extends DefaultCodegen implements CodegenConfig {
|
||||
return reference.toString();
|
||||
}
|
||||
|
||||
private String getVariable(String input) {
|
||||
private String getTemplateVariable(String input) {
|
||||
return "${" + input + "}";
|
||||
}
|
||||
|
||||
public String getModelPropertyNaming() {
|
||||
return this.modelPropertyNaming;
|
||||
}
|
||||
|
||||
private String getNameUsingModelPropertyNaming(String name) {
|
||||
switch (CodegenConstants.MODEL_PROPERTY_NAMING_TYPE.valueOf(getModelPropertyNaming())) {
|
||||
case original:
|
||||
return name;
|
||||
case camelCase:
|
||||
return camelize(name, true);
|
||||
case PascalCase:
|
||||
return camelize(name);
|
||||
case snake_case:
|
||||
return underscore(name);
|
||||
default:
|
||||
throw new IllegalArgumentException("Invalid model property naming '" +
|
||||
name + "'. Must be 'original', 'camelCase', " +
|
||||
"'PascalCase' or 'snake_case'");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toVarName(String name) {
|
||||
// sanitize name
|
||||
name = sanitizeName(name); // FIXME parameter should not be assigned. Also declare it as "final"
|
||||
|
||||
if ("_".equals(name)) {
|
||||
name = "_u";
|
||||
}
|
||||
|
||||
// if it's all uppper case, do nothing
|
||||
if (name.matches("^[A-Z_]*$")) {
|
||||
return name;
|
||||
}
|
||||
|
||||
// camelize (lower first character) the variable name
|
||||
// pet_id => petId
|
||||
name = getNameUsingModelPropertyNaming(name);
|
||||
|
||||
// for reserved word or word starting with number, append _
|
||||
if (isReservedWord(name) || name.matches("^\\d.*")) {
|
||||
name = escapeReservedWord(name);
|
||||
}
|
||||
|
||||
return name;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String escapeReservedWord(String name) {
|
||||
if (this.reservedWordsMappings().containsKey(name)) {
|
||||
return this.reservedWordsMappings().get(name);
|
||||
}
|
||||
return "_" + name;
|
||||
}
|
||||
|
||||
private String getTemplateString(String input) {
|
||||
return "`" + getVariable(input) + "`";
|
||||
return "`" + getTemplateVariable(input) + "`";
|
||||
}
|
||||
|
||||
private String getDoubleQuotedString(String input) {
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* {{appName}}
|
||||
* {{appDescription}}
|
||||
* {{& appDescription}}
|
||||
*
|
||||
{{#version}}
|
||||
* OpenAPI spec version: {{version}}
|
||||
|
@ -1,6 +1,6 @@
|
||||
/*
|
||||
* OpenAPI Petstore
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key `special-key` to test the authorization filters.
|
||||
* This is a sample server Petstore server. For this sample, you can use the api key \"special-key\" to test the authorization filters
|
||||
*
|
||||
* OpenAPI spec version: 1.0.0
|
||||
*
|
||||
@ -19,7 +19,7 @@ const BASE_URL = "http://petstore.swagger.io/v2";
|
||||
// You might want to edit the value of this variable or remove calls to the sleep function on the script.
|
||||
const SLEEP_DURATION = 0.1;
|
||||
// Global variables should be initialized.
|
||||
let api_key = "TODO_EDIT_THE_API_KEY";
|
||||
let apiKey = "TODO_EDIT_THE_API_KEY";
|
||||
|
||||
export default function() {
|
||||
group("/pet", () => {
|
||||
@ -76,7 +76,7 @@ export default function() {
|
||||
sleep(SLEEP_DURATION);
|
||||
|
||||
// Request No. 3
|
||||
params = {headers: {"api_key": `${api_key}`}};
|
||||
params = {headers: {"api_key": `${apiKey}`}};
|
||||
request = http.delete(url, params);
|
||||
sleep(SLEEP_DURATION);
|
||||
});
|
||||
|
Loading…
x
Reference in New Issue
Block a user