From 5389f05682b98cb4927b46d2b90d9612843b17d6 Mon Sep 17 00:00:00 2001 From: William Cheng Date: Tue, 13 Apr 2021 23:45:25 +0800 Subject: [PATCH] camelize name in nim --- .../codegen/languages/NimClientCodegen.java | 24 +++++++++++++++++-- .../petstore/nim/petstore/apis/api_pet.nim | 4 ++-- 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java index 02e4f1b701c2..ff07db2ede8f 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/NimClientCodegen.java @@ -31,6 +31,8 @@ import java.io.File; import java.util.*; +import static org.openapitools.codegen.utils.StringUtils.camelize; + public class NimClientCodegen extends DefaultCodegen implements CodegenConfig { final Logger LOGGER = LoggerFactory.getLogger(NimClientCodegen.class); @@ -297,14 +299,32 @@ public String getTypeDeclaration(Schema p) { @Override public String toVarName(String name) { - if (isReservedWord(name)) { - name = escapeReservedWord(name); + // sanitize name + name = sanitizeName(name, "\\W-[\\$]"); // FIXME: a parameter should not be assigned. Also declare the methods parameters as 'final'. + + if ("_".equals(name)) { + name = "_u"; } + // numbers are not allowed at the beginning if (name.matches("^\\d.*")) { name = "`" + name + "`"; } + // if it's all uppper case, do nothing + if (name.matches("^[A-Z0-9_]*$")) { + return name; + } + + // camelize (lower first character) the variable name + // pet_id => petId + name = camelize(name, true); + + // for reserved word or word starting with number, append _ + if (isReservedWord(name)) { + name = escapeReservedWord(name); + } + return name; } diff --git a/samples/client/petstore/nim/petstore/apis/api_pet.nim b/samples/client/petstore/nim/petstore/apis/api_pet.nim index 9858c523647e..3644e392340a 100644 --- a/samples/client/petstore/nim/petstore/apis/api_pet.nim +++ b/samples/client/petstore/nim/petstore/apis/api_pet.nim @@ -45,9 +45,9 @@ proc addPet*(httpClient: HttpClient, body: Pet): Response = httpClient.post(basepath & "/pet", $(%body)) -proc deletePet*(httpClient: HttpClient, petId: int64, api_key: string): Response = +proc deletePet*(httpClient: HttpClient, petId: int64, apiKey: string): Response = ## Deletes a pet - httpClient.headers["api_key"] = api_key + httpClient.headers["api_key"] = apiKey httpClient.delete(basepath & fmt"/pet/{petId}")