From c81ac9e47595f9efa276de2b339d093a2019cd56 Mon Sep 17 00:00:00 2001 From: winrid Date: Thu, 8 Jan 2026 17:02:30 -0800 Subject: [PATCH] Fix nested map support Also includes a fix for enums :) --- .../codegen/languages/NimClientCodegen.java | 40 ++++++++++++--- .../src/test/resources/3_0/nim/petstore.yaml | 26 ++++++++++ .../petstore/nim/.openapi-generator/FILES | 2 + samples/client/petstore/nim/petstore.nim | 4 ++ .../models/model_digest_email_frequency.nim | 50 +++++++++++++++++++ .../petstore/models/model_pet_statistics.nim | 20 ++++++++ 6 files changed, 135 insertions(+), 7 deletions(-) create mode 100644 samples/client/petstore/nim/petstore/models/model_digest_email_frequency.nim create mode 100644 samples/client/petstore/nim/petstore/models/model_pet_statistics.nim 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 8e13aea833e3..35f3ff81c2d6 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 @@ -458,10 +458,13 @@ public CodegenModel fromModel(String name, Schema schema) { name = normalizeSchemaName(name); CodegenModel mdl = super.fromModel(name, schema); - // Detect integer enums - check both the schema type and the dataType + // Detect numeric enums - check both the schema type and the dataType + // Note: "number" type in OpenAPI can include integer values in enums if (mdl.isEnum) { String schemaType = schema != null ? schema.getType() : null; - if ("integer".equals(schemaType) || "int".equals(mdl.dataType) || "int64".equals(mdl.dataType)) { + if ("integer".equals(schemaType) || "number".equals(schemaType) || + "int".equals(mdl.dataType) || "int64".equals(mdl.dataType) || + "float".equals(mdl.dataType) || "float64".equals(mdl.dataType)) { mdl.vendorExtensions.put("x-is-integer-enum", true); } } @@ -606,22 +609,38 @@ public OperationsMap postProcessOperationsWithModels(OperationsMap objs, List