Corrected generateModelDefinition() to scan for model references in remote returns and errors
This commit is contained in:
parent
cf3e6161ef
commit
1eddcade09
|
@ -18,6 +18,18 @@ var modelHelper = module.exports = {
|
|||
* @return {Object} Associated model definition.
|
||||
*/
|
||||
generateModelDefinition: function generateModelDefinition(modelClass, definitions) {
|
||||
var processType = function(app, modelName, out) {
|
||||
if (modelName) {
|
||||
if (modelName.indexOf('[') == 0) {
|
||||
modelName = modelName.replace(/[\[\]]/g, '');
|
||||
}
|
||||
var model = app.models[modelName];
|
||||
if (model) {
|
||||
generateModelDefinition(model, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var def = modelClass.definition;
|
||||
var name = def.name;
|
||||
var out = definitions || {};
|
||||
|
@ -27,7 +39,7 @@ var modelHelper = module.exports = {
|
|||
}
|
||||
var required = [];
|
||||
// Don't modify original properties.
|
||||
var properties = _cloneDeep(def.properties);
|
||||
var properties = _cloneDeep(def.rawProperties);
|
||||
|
||||
// Iterate through each property in the model definition.
|
||||
// Types may be defined as constructors (e.g. String, Date, etc.),
|
||||
|
@ -72,6 +84,23 @@ var modelHelper = module.exports = {
|
|||
generateModelDefinition(rel.modelThrough, out);
|
||||
}
|
||||
}
|
||||
|
||||
var remotes = modelClass.sharedClass.methods();
|
||||
for (var remoteIdx in remotes) {
|
||||
var remote = remotes[remoteIdx];
|
||||
var returns = remote.returns;
|
||||
if (returns) {
|
||||
for (var returnIdx in returns) {
|
||||
processType(modelClass.app, returns[returnIdx].type, out);
|
||||
}
|
||||
}
|
||||
var errors = remote.errors;
|
||||
if (errors) {
|
||||
for (var errorIdx in errors) {
|
||||
processType(modelClass.app, errors[errorIdx].responseModel, out);
|
||||
}
|
||||
}
|
||||
}
|
||||
return out;
|
||||
},
|
||||
|
||||
|
|
Loading…
Reference in New Issue