Skip to content

Commit b03a19a

Browse files
committed
[refactoring]get relations
1 parent 4d51d82 commit b03a19a

File tree

3 files changed

+13
-8
lines changed

3 files changed

+13
-8
lines changed

lib/deserialize.js

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
'use strict';
22
var Deserializer = require('./deserializer');
3+
var utils = require('./utils');
34

45
module.exports = function (app) {
56
var remotes = app.remotes();
@@ -37,10 +38,7 @@ module.exports = function (app) {
3738
if (!data.data.id) return next(new Error('JSON API resource object must contain `data.id` property'));
3839
}
3940

40-
var serverRelations = {};
41-
if (this.definition) {
42-
serverRelations = this.definition.settings.relations;
43-
}
41+
var serverRelations = utils.getRelationsFromContext(ctx, app);
4442
//transform the payload
4543
ctx.args.data = Deserializer(data, serverRelations);
4644
//TODO: Rewrite to normal search model by type and FK

lib/serialize.js

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -80,10 +80,7 @@ module.exports = function (app, defaults) {
8080
}
8181
};
8282
options = _.defaults(options, defaults);
83-
var relations = {};
84-
if (this.definition) {
85-
relations = this.definition.settings.relations;
86-
}
83+
var relations = utils.getRelationsFromContext(ctx, app);
8784
var res = Serializer(type, data, relations, options);
8885
ctx.result = res;
8986

lib/utils.js

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,16 @@ module.exports = {
2727
return context.method.sharedClass.name;
2828
},
2929

30+
getRelationsFromContext: function (context, app) {
31+
var model = this.getModelFromContext(context, app);
32+
return model.settings.relations;
33+
},
34+
35+
getModelFromContext: function (context, app) {
36+
var name = this.modelNameFromContext(context);
37+
return app.models[name];
38+
},
39+
3040
urlFromContext: function (context) {
3141
return context.req.protocol + '://' + context.req.get('host') + context.req.originalUrl;
3242
},

0 commit comments

Comments
 (0)