Skip to content

Commit b9b5394

Browse files
authored
Typescript angular discriminator mapping (#8929)
* remove trailing spaces * add support of discriminator mapping for typecript-angular generator * PR comment
1 parent 919945b commit b9b5394

File tree

1 file changed

+20
-0
lines changed

1 file changed

+20
-0
lines changed

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

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -517,6 +517,7 @@ public Map<String, Object> postProcessAllModels(Map<String, Object> objs) {
517517
if (cm.discriminator != null && cm.children != null) {
518518
for (CodegenModel child : cm.children) {
519519
cm.imports.add(child.classname);
520+
setChildDiscriminatorValue(cm, child);
520521
}
521522
}
522523
if (cm.parent != null) {
@@ -531,6 +532,25 @@ public Map<String, Object> postProcessAllModels(Map<String, Object> objs) {
531532
return result;
532533
}
533534

535+
private void setChildDiscriminatorValue(CodegenModel parent, CodegenModel child) {
536+
if (
537+
child.vendorExtensions.isEmpty() ||
538+
!child.vendorExtensions.containsKey("x-discriminator-value")
539+
) {
540+
541+
for (CodegenProperty prop : child.allVars) {
542+
if (prop.baseName.equals(parent.discriminator.getPropertyName())) {
543+
544+
for (CodegenDiscriminator.MappedModel mappedModel : parent.discriminator.getMappedModels()) {
545+
if (mappedModel.getModelName().equals(child.classname)) {
546+
prop.discriminatorValue = mappedModel.getMappingName();
547+
}
548+
}
549+
}
550+
}
551+
}
552+
}
553+
534554
/**
535555
* Parse imports
536556
*/

0 commit comments

Comments
 (0)