-
Notifications
You must be signed in to change notification settings - Fork 6k
Closed
Labels
Milestone
Description
Description
Generated type file ID
contains the following:
/**
* Constructs a <code>ID</code> from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:model/ID} obj Optional instance to populate.
* @return {module:model/ID} The populated <code>ID</code> instance.
*/
exports.constructFromObject = function(data, obj) {
if (data) {
obj = obj || new exports();
}
return obj;
}
data
is an integer input. obj
is null. Hence, the result is exports()
instead of simply data
.
Swagger-codegen version
Build package: io.swagger.codegen.languages.JavascriptClientCodegen
v2.2.2
Swagger declaration file content or url
definitions:
# ===============================================================================
# Fragments
# ===============================================================================
ID:
description: An entity identifer
type: integer
format: int64
readOnly: true
# ===========================================================================
# Users
# ===========================================================================
User:
type: object
required:
- emailAddress
properties:
id:
$ref: '#/definitions/ID'
emailAddress:
type: string
format: email
minLength: 6
maxLength: 254
Command line used for generation
java -jar swagger-codegen-cli.jar generate -i ../source.yaml -l javascript --additional-properties usePromises=true -o ./javascript/
Steps to reproduce
Use the above definitions in any operation. You'll get a result object with an exports() objects instead of an ID integer.
Related issues
Suggest a Fix
It tempts me to say:
/**
* Constructs a <code>ID</code> from a plain JavaScript object, optionally creating a new instance.
* Copies all relevant properties from <code>data</code> to <code>obj</code> if supplied or a new instance if not.
* @param {Object} data The plain JavaScript object bearing properties of interest.
* @param {module:model/ID} obj Optional instance to populate.
* @return {module:model/ID} The populated <code>ID</code> instance.
*/
exports.constructFromObject = function(data, obj) {
if (data) {
obj = **data** || new exports();
}
return obj;
}
but I actually think the issue is that swagger-codegen doesn't follow the $ref properly. Not certain