Skip to content

Commit 24eee64

Browse files
committed
[rust-axum] Make discriminator field name camelCase
1 parent d605afe commit 24eee64

1 file changed

Lines changed: 13 additions & 13 deletions

File tree

modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/RustAxumServerCodegen.java

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -648,7 +648,7 @@ public CodegenOperation fromOperation(String path, String httpMethod, Operation
648648
}
649649

650650
private void postProcessPolymorphism(final List<ModelMap> allModels) {
651-
final HashMap<String, List<String>> discriminatorsForModel = new HashMap<>();
651+
final HashMap<String, List<CodegenDiscriminator>> discriminatorsForModel = new HashMap<>();
652652

653653
for (final ModelMap mo : allModels) {
654654
final CodegenModel cm = mo.getModel();
@@ -672,14 +672,14 @@ private void postProcessPolymorphism(final List<ModelMap> allModels) {
672672

673673
if (cm.discriminator != null) {
674674
for (final String model : cm.oneOf) {
675-
final List<String> discriminators = discriminatorsForModel.getOrDefault(model, new ArrayList<>());
676-
discriminators.add(cm.discriminator.getPropertyName());
675+
final List<CodegenDiscriminator> discriminators = discriminatorsForModel.getOrDefault(model, new ArrayList<>());
676+
discriminators.add(cm.discriminator);
677677
discriminatorsForModel.put(model, discriminators);
678678
}
679679

680680
for (final String model : cm.anyOf) {
681-
final List<String> discriminators = discriminatorsForModel.getOrDefault(model, new ArrayList<>());
682-
discriminators.add(cm.discriminator.getPropertyName());
681+
final List<CodegenDiscriminator> discriminators = discriminatorsForModel.getOrDefault(model, new ArrayList<>());
682+
discriminators.add(cm.discriminator);
683683
discriminatorsForModel.put(model, discriminators);
684684
}
685685
}
@@ -689,11 +689,11 @@ private void postProcessPolymorphism(final List<ModelMap> allModels) {
689689
for (ModelMap mo : allModels) {
690690
final CodegenModel cm = mo.getModel();
691691

692-
final List<String> discriminators = discriminatorsForModel.get(cm.getSchemaName());
692+
final List<CodegenDiscriminator> discriminators = discriminatorsForModel.get(cm.getSchemaName());
693693
if (discriminators != null) {
694694
// If the discriminator field is not a defined attribute in the variant structure, create it.
695695
if (!discriminating(discriminators, cm)) {
696-
final String discriminator = discriminators.get(0);
696+
final CodegenDiscriminator discriminator = discriminators.get(0);
697697

698698
CodegenProperty property = new CodegenProperty();
699699

@@ -710,11 +710,11 @@ private void postProcessPolymorphism(final List<ModelMap> allModels) {
710710
property.isDiscriminator = true;
711711

712712
// Attributes based on the discriminator value
713-
property.baseName = discriminator;
714-
property.name = discriminator;
715-
property.nameInCamelCase = camelize(discriminator);
713+
property.baseName = discriminator.getPropertyBaseName();
714+
property.name = discriminator.getPropertyName();
715+
property.nameInCamelCase = camelize(discriminator.getPropertyName());
716716
property.nameInPascalCase = property.nameInCamelCase.substring(0, 1).toUpperCase(Locale.ROOT) + property.nameInCamelCase.substring(1);
717-
property.nameInSnakeCase = underscore(discriminator).toUpperCase(Locale.ROOT);
717+
property.nameInSnakeCase = underscore(discriminator.getPropertyName()).toUpperCase(Locale.ROOT);
718718
property.getter = String.format(Locale.ROOT, "get%s", property.nameInPascalCase);
719719
property.setter = String.format(Locale.ROOT, "set%s", property.nameInPascalCase);
720720
property.defaultValueWithParam = String.format(Locale.ROOT, " = data.%s;", property.name);
@@ -743,14 +743,14 @@ private void postProcessPolymorphism(final List<ModelMap> allModels) {
743743
}
744744
}
745745

746-
private static boolean discriminating(final List<String> discriminatorsForModel, final CodegenModel cm) {
746+
private static boolean discriminating(final List<CodegenDiscriminator> discriminatorsForModel, final CodegenModel cm) {
747747
resetDiscriminatorProperty(cm);
748748

749749
// Discriminator will be presented as enum tag -> One and only one tag is allowed
750750
int countString = 0;
751751
int countNonString = 0;
752752
for (final CodegenProperty var : cm.vars) {
753-
if (discriminatorsForModel.stream().anyMatch(discriminator -> var.baseName.equals(discriminator) || var.name.equals(discriminator))) {
753+
if (discriminatorsForModel.stream().anyMatch(discriminator -> var.baseName.equals(discriminator.getPropertyBaseName()) || var.name.equals(discriminator.getPropertyName()))) {
754754
if (var.isString) {
755755
var.isDiscriminator = true;
756756
++countString;

0 commit comments

Comments
 (0)