diff --git a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java index 04e1086dc85d..2351c1d4d0eb 100644 --- a/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java +++ b/modules/openapi-generator/src/main/java/org/openapitools/codegen/languages/ScalaHttp4sClientCodegen.java @@ -406,7 +406,7 @@ public Map postProcessAllModels(Map objs) childModel.getVendorExtensions().put("x-oneOfParent", cModel.classname); // Store parent's discriminator info for use in template if (cModel.discriminator != null) { - childModel.getVendorExtensions().put("x-parentDiscriminatorName", cModel.discriminator.getPropertyName()); + childModel.getVendorExtensions().put("x-parentDiscriminatorBaseName", cModel.discriminator.getPropertyBaseName()); } oneOfMembers.add(childModel); @@ -461,7 +461,7 @@ public Map postProcessAllModels(Map objs) for (CodegenModel member : oneOfMembers) { member.getVendorExtensions().remove("x-isOneOfMember"); member.getVendorExtensions().remove("x-oneOfParent"); - member.getVendorExtensions().remove("x-parentDiscriminatorName"); + member.getVendorExtensions().remove("x-parentDiscriminatorBaseName"); } if (oneOfMembers.isEmpty()) { diff --git a/modules/openapi-generator/src/main/resources/scala-http4s/model.mustache b/modules/openapi-generator/src/main/resources/scala-http4s/model.mustache index f47595deff98..0f52fc14afc9 100644 --- a/modules/openapi-generator/src/main/resources/scala-http4s/model.mustache +++ b/modules/openapi-generator/src/main/resources/scala-http4s/model.mustache @@ -44,12 +44,12 @@ object {{classname}} { // with discriminator, no mapping given encoder{{classname}}: Encoder[{{classname}}] = Encoder.instance { {{#vendorExtensions.x-discriminator-entries}} - case obj: {{classname}} => obj.asJson.mapObject(("{{discriminator.propertyName}}" -> "{{schemaName}}".asJson) +: _) + case obj: {{classname}} => obj.asJson.mapObject(("{{discriminator.propertyBaseName}}" -> "{{schemaName}}".asJson) +: _) {{/vendorExtensions.x-discriminator-entries}} } given decoder{{classname}}: Decoder[{{classname}}] = Decoder.instance { cursor => - cursor.downField("{{discriminator.propertyName}}").as[String].flatMap { + cursor.downField("{{discriminator.propertyBaseName}}").as[String].flatMap { {{#vendorExtensions.x-discriminator-entries}} case "{{schemaName}}" => cursor.as[{{classname}}] {{/vendorExtensions.x-discriminator-entries}} @@ -63,12 +63,12 @@ object {{classname}} { {{#discriminator}} given encoder{{classname}}: Encoder[{{classname}}] = Encoder.instance { {{#mappedModels}} - case obj: {{model.classname}} => obj.asJson.mapObject(("{{propertyName}}" -> "{{mappingName}}".asJson) +: _) + case obj: {{model.classname}} => obj.asJson.mapObject(("{{propertyBaseName}}" -> "{{mappingName}}".asJson) +: _) {{/mappedModels}} } given decoder{{classname}}: Decoder[{{classname}}] = Decoder.instance { cursor => - cursor.downField("{{propertyName}}").as[String].flatMap { + cursor.downField("{{propertyBaseName}}").as[String].flatMap { {{#mappedModels}} case "{{mappingName}}" => cursor.as[{{model.classname}}] {{/mappedModels}} @@ -109,12 +109,12 @@ object {{classname}} { // with discriminator, no mapping given encoder{{classname}}: Encoder[{{classname}}] = Encoder.instance { {{#vendorExtensions.x-oneOfMembers}} - case obj: {{classname}} => obj.asJson.mapObject(("{{vendorExtensions.x-parentDiscriminatorName}}" -> "{{name}}".asJson) +: _) + case obj: {{classname}} => obj.asJson.mapObject(("{{vendorExtensions.x-parentDiscriminatorBaseName}}" -> "{{name}}".asJson) +: _) {{/vendorExtensions.x-oneOfMembers}} } given decoder{{classname}}: Decoder[{{classname}}] = Decoder.instance { cursor => - cursor.downField("{{discriminator.propertyName}}").as[String].flatMap { + cursor.downField("{{discriminator.propertyBaseName}}").as[String].flatMap { {{#vendorExtensions.x-oneOfMembers}} case "{{name}}" => cursor.as[{{classname}}] {{/vendorExtensions.x-oneOfMembers}} @@ -128,12 +128,12 @@ object {{classname}} { {{#discriminator}} given encoder{{classname}}: Encoder[{{classname}}] = Encoder.instance { {{#mappedModels}} - case obj: {{model.classname}} => obj.asJson.mapObject(("{{propertyName}}" -> "{{mappingName}}".asJson) +: _) + case obj: {{model.classname}} => obj.asJson.mapObject(("{{propertyBaseName}}" -> "{{mappingName}}".asJson) +: _) {{/mappedModels}} } given decoder{{classname}}: Decoder[{{classname}}] = Decoder.instance { cursor => - cursor.downField("{{propertyName}}").as[String].flatMap { + cursor.downField("{{propertyBaseName}}").as[String].flatMap { {{#mappedModels}} case "{{mappingName}}" => cursor.as[{{model.classname}}] {{/mappedModels}}