From 78eb1c7e769cfcc53cff377512832d25ae62afeb Mon Sep 17 00:00:00 2001 From: "joshua.ye" Date: Mon, 18 Jul 2022 14:08:05 +0800 Subject: [PATCH] feat: Add import for default go code gen. --- .../codegen/languages/AbstractGoCodegen.java | 22 ++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java index 6dd27a80479d..539014707eca 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/AbstractGoCodegen.java @@ -314,6 +314,15 @@ public String toModel(String name, boolean doUnderscore) { return name; } + @Override + public CodegenModel fromModel(String name, Schema schema) { + CodegenModel gotcm = super.fromModel(name, schema); + if(schema.getEnum() != null && !schema.getEnum().isEmpty()){ + gotcm.dataType = schema.getType(); + } + return gotcm; + } + @Override public String toApiFilename(String name) { final String apiName; @@ -611,6 +620,7 @@ public void postProcessModelProperty(CodegenModel model, CodegenProperty propert @Override public ModelsMap postProcessModels(ModelsMap objs) { + List addedbaseType = new ArrayList(); // remove model imports to avoid error List> imports = objs.getImports(); final String prefix = modelPackage(); @@ -619,6 +629,7 @@ public ModelsMap postProcessModels(ModelsMap objs) { String _import = iterator.next().get("import"); if (_import.startsWith(prefix)) iterator.remove(); + addedbaseType.add(_import); } boolean addedTimeImport = false; @@ -635,6 +646,14 @@ public ModelsMap postProcessModels(ModelsMap objs) { imports.add(createMapping("import", "os")); addedOSImport = true; } + + if(!languageSpecificPrimitives.contains(param.dataType)){ + String _import = param.dataType; + if (importMapping.containsKey(_import) && !addedbaseType.contains(importMapping.get(_import))) { + imports.add(createMapping("import", importMapping.get(_import))); + addedbaseType.add(importMapping.get(_import)); + } + } } if (this instanceof GoClientCodegen && model.isEnum) { @@ -663,8 +682,9 @@ public ModelsMap postProcessModels(ModelsMap objs) { String _import = listIterator.next().get("import"); // if the import package happens to be found in the importMapping (key) // add the corresponding import package to the list - if (importMapping.containsKey(_import)) { + if (importMapping.containsKey(_import) && !addedbaseType.contains(importMapping.get(_import)) ) { listIterator.add(createMapping("import", importMapping.get(_import))); + addedbaseType.add(importMapping.get(_import)); } }