Merge pull request #423 from clarkorz/hasOne-findOrCreate
use findOrCreate in hasOne#create
This commit is contained in:
commit
cc1791b01d
|
@ -1539,22 +1539,17 @@ HasOne.prototype.create = function (targetModelData, cb) {
|
||||||
this.definition.applyScope(modelInstance, query);
|
this.definition.applyScope(modelInstance, query);
|
||||||
this.definition.applyProperties(modelInstance, targetModelData);
|
this.definition.applyProperties(modelInstance, targetModelData);
|
||||||
|
|
||||||
modelTo.findOne(query, function(err, result) {
|
modelTo.findOrCreate(query, targetModelData, function (err, targetModel, created) {
|
||||||
if (err) {
|
if (err) {
|
||||||
cb(err);
|
return cb && cb(err);
|
||||||
} else if(result) {
|
}
|
||||||
cb(new Error('HasOne relation cannot create more than one instance of '
|
if (created) {
|
||||||
+ modelTo.modelName));
|
|
||||||
} else {
|
|
||||||
modelTo.create(targetModelData, function (err, targetModel) {
|
|
||||||
if (!err) {
|
|
||||||
// Refresh the cache
|
// Refresh the cache
|
||||||
self.resetCache(targetModel);
|
self.resetCache(targetModel);
|
||||||
cb && cb(err, targetModel);
|
cb && cb(err, targetModel);
|
||||||
} else {
|
} else {
|
||||||
cb && cb(err);
|
cb && cb(new Error('HasOne relation cannot create more than one instance of '
|
||||||
}
|
+ modelTo.modelName));
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue