Merge branch 'release/2.12.1' into production
This commit is contained in:
commit
c899536002
25
CHANGES.md
25
CHANGES.md
|
@ -1,3 +1,9 @@
|
|||
2015-02-03, Version 2.12.1
|
||||
==========================
|
||||
|
||||
* Map not found to 404 for hasOne (Raymond Feng)
|
||||
|
||||
|
||||
2015-02-03, Version 2.12.0
|
||||
==========================
|
||||
|
||||
|
@ -1372,14 +1378,6 @@
|
|||
|
||||
* 2.0.0-beta1 (Ritchie Martori)
|
||||
|
||||
* Bump version (Raymond Feng)
|
||||
|
||||
* Add postgresql to the keywords (Raymond Feng)
|
||||
|
||||
* updated package.json with SOAP and framework keywords (altsang)
|
||||
|
||||
* updated package.json with keywords and updated description (Raymond Feng)
|
||||
|
||||
* Make app.datasources unique per app instance (Miroslav Bajtoš)
|
||||
|
||||
* Add RC version (Ritchie Martori)
|
||||
|
@ -1445,11 +1443,6 @@
|
|||
* Add Change model (Ritchie Martori)
|
||||
|
||||
|
||||
2014-05-27, Version 1.8.4
|
||||
=========================
|
||||
|
||||
|
||||
|
||||
2014-05-27, Version 1.8.5
|
||||
=========================
|
||||
|
||||
|
@ -1461,8 +1454,14 @@
|
|||
|
||||
* updated package.json with keywords and updated description (Raymond Feng)
|
||||
|
||||
|
||||
2014-05-27, Version 1.8.4
|
||||
=========================
|
||||
|
||||
* Add more keywords (Raymond Feng)
|
||||
|
||||
* Bump version (Raymond Feng)
|
||||
|
||||
* app: flatten model config (Miroslav Bajtoš)
|
||||
|
||||
* Fix the test for mocha 1.19.0 (Raymond Feng)
|
||||
|
|
28
lib/model.js
28
lib/model.js
|
@ -431,6 +431,17 @@ Model.belongsToRemoting = function(relationName, relation, define) {
|
|||
}, fn);
|
||||
};
|
||||
|
||||
function convertNullToNotFoundError(toModelName, ctx, cb) {
|
||||
if (ctx.result !== null) return cb();
|
||||
|
||||
var fk = ctx.getArgByName('fk');
|
||||
var msg = 'Unknown "' + toModelName + '" id "' + fk + '".';
|
||||
var error = new Error(msg);
|
||||
error.statusCode = error.status = 404;
|
||||
error.code = 'MODEL_NOT_FOUND';
|
||||
cb(error);
|
||||
}
|
||||
|
||||
Model.hasOneRemoting = function(relationName, relation, define) {
|
||||
var pathName = (relation.options.http && relation.options.http.path) || relationName;
|
||||
var toModelName = relation.modelTo.modelName;
|
||||
|
@ -441,7 +452,8 @@ Model.hasOneRemoting = function(relationName, relation, define) {
|
|||
accepts: {arg: 'refresh', type: 'boolean', http: {source: 'query'}},
|
||||
description: 'Fetches hasOne relation ' + relationName,
|
||||
accessType: 'READ',
|
||||
returns: {arg: relationName, type: relation.modelTo.modelName, root: true}
|
||||
returns: {arg: relationName, type: relation.modelTo.modelName, root: true},
|
||||
rest: {after: convertNullToNotFoundError.bind(null, toModelName)}
|
||||
});
|
||||
|
||||
define('__create__' + relationName, {
|
||||
|
@ -468,24 +480,12 @@ Model.hasOneRemoting = function(relationName, relation, define) {
|
|||
description: 'Deletes ' + relationName + ' of this model.',
|
||||
accessType: 'WRITE'
|
||||
});
|
||||
|
||||
};
|
||||
|
||||
Model.hasManyRemoting = function(relationName, relation, define) {
|
||||
var pathName = (relation.options.http && relation.options.http.path) || relationName;
|
||||
var toModelName = relation.modelTo.modelName;
|
||||
|
||||
function convertNullToNotFoundError(ctx, cb) {
|
||||
if (ctx.result !== null) return cb();
|
||||
|
||||
var fk = ctx.getArgByName('fk');
|
||||
var msg = 'Unknown "' + toModelName + '" id "' + fk + '".';
|
||||
var error = new Error(msg);
|
||||
error.statusCode = error.status = 404;
|
||||
error.code = 'MODEL_NOT_FOUND';
|
||||
cb(error);
|
||||
}
|
||||
|
||||
var findByIdFunc = this.prototype['__findById__' + relationName];
|
||||
define('__findById__' + relationName, {
|
||||
isStatic: false,
|
||||
|
@ -496,7 +496,7 @@ Model.hasManyRemoting = function(relationName, relation, define) {
|
|||
description: 'Find a related item by id for ' + relationName,
|
||||
accessType: 'READ',
|
||||
returns: {arg: 'result', type: toModelName, root: true},
|
||||
rest: {after: convertNullToNotFoundError}
|
||||
rest: {after: convertNullToNotFoundError.bind(null, toModelName)}
|
||||
}, findByIdFunc);
|
||||
|
||||
var destroyByIdFunc = this.prototype['__destroyById__' + relationName];
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "loopback",
|
||||
"version": "2.12.0",
|
||||
"version": "2.12.1",
|
||||
"description": "LoopBack: Open Source Framework for Node.js",
|
||||
"homepage": "http://loopback.io",
|
||||
"keywords": [
|
||||
|
@ -102,6 +102,6 @@
|
|||
"url": "https://github.com/strongloop/loopback/blob/master/LICENSE"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"sl-blip": "http://blip.strongloop.com/loopback@2.12.0"
|
||||
"sl-blip": "http://blip.strongloop.com/loopback@2.12.1"
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue