Merge branch 'release/2.12.1' into production

This commit is contained in:
Raymond Feng 2015-02-03 11:14:41 -08:00
commit c899536002
3 changed files with 28 additions and 29 deletions

View File

@ -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)

View File

@ -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];

View File

@ -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"
}
}