Skip to content

Commit 0a448f9

Browse files
committed
fix(go): commit missing files
1 parent ee8fd3f commit 0a448f9

2 files changed

Lines changed: 74 additions & 3 deletions

File tree

CustomRegionGenerator.java

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
package cloud.stackit.codegen;
2+
3+
import org.openapitools.codegen.CodegenProperty;
4+
import org.openapitools.codegen.languages.GoClientCodegen;
5+
6+
import org.openapitools.codegen.CodegenParameter;
7+
8+
import java.util.Set;
9+
import io.swagger.v3.oas.models.media.Schema;
10+
import io.swagger.v3.oas.models.parameters.Parameter;
11+
12+
public class CustomRegionGenerator extends GoClientCodegen {
13+
14+
@Override
15+
public String getName() {
16+
// This is the name you will pass to the -g flag
17+
return "cloud.stackit.codegen.CustomRegionGenerator";
18+
}
19+
20+
public CustomRegionGenerator() {
21+
super();
22+
System.out.println("=== CUSTOM GO CLIENT GENERATOR INITIALIZED ===");
23+
}
24+
25+
@Override
26+
public CodegenProperty fromProperty(String name, Schema p, boolean required) {
27+
CodegenProperty property = super.fromProperty(name, p, required);
28+
29+
if (isRegionField(property.name)) {
30+
property.dataType = "string";
31+
property.datatypeWithEnum = "string";
32+
property.baseType = "string";
33+
34+
// Force template engine to treat this as a string
35+
property.isString = true;
36+
property.isInteger = false;
37+
property.isLong = false;
38+
property.isNumber = false;
39+
property.isNumeric = false;
40+
}
41+
return property;
42+
}
43+
44+
/**
45+
* Intercepts operation parameters (query, path, header, body).
46+
*/
47+
@Override
48+
public CodegenParameter fromParameter(Parameter param, Set<String> imports) {
49+
CodegenParameter parameter = super.fromParameter(param, imports);
50+
51+
if (isRegionField(parameter.paramName)) {
52+
parameter.dataType = "string";
53+
54+
// Force template engine to treat this as a string
55+
parameter.isString = true;
56+
parameter.isInteger = false;
57+
parameter.isLong = false;
58+
parameter.isNumber = false;
59+
// If it was previously an enum or another complex type, clear it
60+
parameter.isEnum = false;
61+
}
62+
return parameter;
63+
}
64+
65+
private boolean isRegionField(String name) {
66+
if (name == null) {
67+
return false;
68+
}
69+
return name.equalsIgnoreCase("region") || name.equalsIgnoreCase("regionId");
70+
}
71+
}

scripts/generate-sdk/languages/go.sh

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -161,14 +161,14 @@ generate_go_sdk() {
161161
cp "${ROOT_DIR}/languages/golang/.openapi-generator-ignore" "${SERVICES_FOLDER}/${service}/${version}api/.openapi-generator-ignore"
162162

163163
# compile custom generator
164-
mkdir -p custom/com/mycompany/codegen
164+
mkdir -p custom/cloud/stackit/codegen
165165
javac -cp "${GENERATOR_JAR_PATH}" CustomRegionGenerator.java
166-
mv CustomRegionGenerator.class custom/com/mycompany/codegen/CustomRegionGenerator.class
166+
mv CustomRegionGenerator.class custom/cloud/stackit/codegen/CustomRegionGenerator.class
167167

168168
# Run the generator for Go
169169
java -Dlog.level=${GENERATOR_LOG_LEVEL} -cp "custom:scripts/bin/openapi-generator-cli.jar" \
170170
org.openapitools.codegen.OpenAPIGenerator generate \
171-
-g com.mycompany.codegen.CustomRegionGenerator \
171+
-g cloud.stackit.codegen.CustomRegionGenerator \
172172
--input-spec "${service_version_json}" \
173173
--output "${SERVICES_FOLDER}/${service}/${version}api" \
174174
--package-name "${version}api" \

0 commit comments

Comments
 (0)