Fix remoting types for related models

This commit is contained in:
Raymond Feng 2014-07-24 10:26:49 -07:00
parent 405d04f4ad
commit ab8d82d7f9
1 changed files with 12 additions and 7 deletions

View File

@ -136,7 +136,8 @@ Model.setup = function () {
var idDesc = ModelCtor.modelName + ' id';
ModelCtor.sharedCtor.accepts = [
{arg: 'id', type: 'any', http: {source: 'path'}, description: idDesc}
{arg: 'id', type: 'any', required: true, http: {source: 'path'},
description: idDesc}
// {arg: 'instance', type: 'object', http: {source: 'body'}}
];
@ -347,6 +348,7 @@ Model.belongsToRemoting = function(relationName, relation, define) {
}
Model.hasManyRemoting = function (relationName, relation, define) {
var toModelName = relation.modelTo.modelName;
var findByIdFunc = this.prototype['__findById__' + relationName];
define('__findById__' + relationName, {
isStatic: false,
@ -355,7 +357,7 @@ Model.hasManyRemoting = function (relationName, relation, define) {
description: 'Foreign key for ' + relationName, required: true,
http: {source: 'path'}},
description: 'Find a related item by id for ' + relationName,
returns: {arg: 'result', type: relation.modelTo.modelName, root: true}
returns: {arg: 'result', type: toModelName, root: true}
}, findByIdFunc);
var destroyByIdFunc = this.prototype['__destroyById__' + relationName];
@ -373,11 +375,14 @@ Model.hasManyRemoting = function (relationName, relation, define) {
define('__updateById__' + relationName, {
isStatic: false,
http: {verb: 'put', path: '/' + relationName + '/:fk'},
accepts: {arg: 'fk', type: 'any',
description: 'Foreign key for ' + relationName, required: true,
http: {source: 'path'}},
accepts: [
{arg: 'fk', type: 'any',
description: 'Foreign key for ' + relationName, required: true,
http: {source: 'path'}},
{arg: 'data', type: toModelName, http: {source: 'body'}}
],
description: 'Update a related item by id for ' + relationName,
returns: {arg: 'result', type: relation.modelTo.modelName, root: true}
returns: {arg: 'result', type: toModelName, root: true}
}, updateByIdFunc);
if (relation.modelThrough) {
@ -432,7 +437,7 @@ Model.scopeRemoting = function(relationName, relation, define) {
define('__create__' + relationName, {
isStatic: false,
http: {verb: 'post', path: '/' + relationName},
accepts: {arg: 'data', type: 'object', http: {source: 'body'}},
accepts: {arg: 'data', type: toModelName, http: {source: 'body'}},
description: 'Creates a new instance in ' + relationName + ' of this model.',
returns: {arg: 'data', type: toModelName, root: true}
});