forked from loafle/openapi-generator-original
Fix discriminator name not following variable naming convention (#1742)
* fix discrimintator name not following variable naming convention * fix test * update samples * use discriminator name directly in php * single quote array index
This commit is contained in:
parent
aed2c882da
commit
0dee995ebb
@ -235,6 +235,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
allModels.put(modelName, cm);
|
||||
}
|
||||
}
|
||||
|
||||
// Fix up all parent and interface CodegenModel references.
|
||||
for (CodegenModel cm : allModels.values()) {
|
||||
if (cm.getParent() != null) {
|
||||
@ -250,6 +251,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Let parent know about all its children
|
||||
for (String name : allModels.keySet()) {
|
||||
CodegenModel cm = allModels.get(name);
|
||||
@ -1820,7 +1822,7 @@ public class DefaultCodegen implements CodegenConfig {
|
||||
return null;
|
||||
}
|
||||
CodegenDiscriminator discriminator = new CodegenDiscriminator();
|
||||
discriminator.setPropertyName(schema.getDiscriminator().getPropertyName());
|
||||
discriminator.setPropertyName(toVarName(schema.getDiscriminator().getPropertyName()));
|
||||
discriminator.setMapping(schema.getDiscriminator().getMapping());
|
||||
if (schema.getDiscriminator().getMapping() != null && !schema.getDiscriminator().getMapping().isEmpty()) {
|
||||
for (Entry<String, String> e : schema.getDiscriminator().getMapping().entrySet()) {
|
||||
|
@ -166,8 +166,7 @@ class {{classname}} {{#parentSchema}}extends {{{parent}}} {{/parentSchema}}{{^pa
|
||||
{{#discriminator}}
|
||||
|
||||
// Initialize discriminator property with the model name.
|
||||
$discriminator = array_search('{{discriminatorName}}', self::$attributeMap, true);
|
||||
$this->container[$discriminator] = static::$openAPIModelName;
|
||||
$this->container['{{discriminatorName}}'] = static::$openAPIModelName;
|
||||
{{/discriminator}}
|
||||
}
|
||||
|
||||
|
@ -534,7 +534,7 @@ public class DefaultCodegenTest {
|
||||
|
||||
private void verifyPersonDiscriminator(CodegenDiscriminator discriminator) {
|
||||
CodegenDiscriminator test = new CodegenDiscriminator();
|
||||
test.setPropertyName("$_type");
|
||||
test.setPropertyName("DollarUnderscoretype");
|
||||
test.setMapping(new HashMap<>());
|
||||
test.getMapping().put("a", "#/components/schemas/Adult");
|
||||
test.getMapping().put("c", "#/components/schemas/Child");
|
||||
|
@ -44,9 +44,9 @@ components:
|
||||
firstName:
|
||||
type: string
|
||||
duplicated_optional:
|
||||
type: string
|
||||
type: integer
|
||||
duplicated_required:
|
||||
type: string
|
||||
type: integer
|
||||
person_required:
|
||||
type: string
|
||||
format: date-time
|
||||
|
@ -29,7 +29,7 @@ namespace Org.OpenAPITools.Model
|
||||
/// Animal
|
||||
/// </summary>
|
||||
[DataContract]
|
||||
[JsonConverter(typeof(JsonSubtypes), "className")]
|
||||
[JsonConverter(typeof(JsonSubtypes), "ClassName")]
|
||||
[JsonSubtypes.KnownSubType(typeof(Dog), "Dog")]
|
||||
[JsonSubtypes.KnownSubType(typeof(Cat), "Cat")]
|
||||
public partial class Animal : IEquatable<Animal>, IValidatableObject
|
||||
|
@ -42,7 +42,7 @@ use \OpenAPI\Client\ObjectSerializer;
|
||||
*/
|
||||
class Animal implements ModelInterface, ArrayAccess
|
||||
{
|
||||
const DISCRIMINATOR = 'className';
|
||||
const DISCRIMINATOR = 'class_name';
|
||||
|
||||
/**
|
||||
* The original name of the model.
|
||||
@ -186,8 +186,7 @@ class Animal implements ModelInterface, ArrayAccess
|
||||
$this->container['color'] = isset($data['color']) ? $data['color'] : 'red';
|
||||
|
||||
// Initialize discriminator property with the model name.
|
||||
$discriminator = array_search('className', self::$attributeMap, true);
|
||||
$this->container[$discriminator] = static::$openAPIModelName;
|
||||
$this->container['class_name'] = static::$openAPIModelName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ module Petstore
|
||||
|
||||
# discriminator's property name in OpenAPI v3
|
||||
def self.openapi_discriminator_name
|
||||
:'className'
|
||||
:'class_name'
|
||||
end
|
||||
|
||||
# Initializes the object
|
||||
|
@ -42,7 +42,7 @@ use \OpenAPI\Client\ObjectSerializer;
|
||||
*/
|
||||
class Animal implements ModelInterface, ArrayAccess
|
||||
{
|
||||
const DISCRIMINATOR = 'className';
|
||||
const DISCRIMINATOR = 'class_name';
|
||||
|
||||
/**
|
||||
* The original name of the model.
|
||||
@ -186,8 +186,7 @@ class Animal implements ModelInterface, ArrayAccess
|
||||
$this->container['color'] = isset($data['color']) ? $data['color'] : 'red';
|
||||
|
||||
// Initialize discriminator property with the model name.
|
||||
$discriminator = array_search('className', self::$attributeMap, true);
|
||||
$this->container[$discriminator] = static::$openAPIModelName;
|
||||
$this->container['class_name'] = static::$openAPIModelName;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -36,7 +36,7 @@ module Petstore
|
||||
|
||||
# discriminator's property name in OpenAPI v3
|
||||
def self.openapi_discriminator_name
|
||||
:'className'
|
||||
:'class_name'
|
||||
end
|
||||
|
||||
# Initializes the object
|
||||
|
Loading…
x
Reference in New Issue
Block a user