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