Add models middleware
This commit is contained in:
parent
7712ebc898
commit
4b8e358cbe
|
@ -0,0 +1,48 @@
|
|||
/*!
|
||||
* Module dependencies.
|
||||
*/
|
||||
|
||||
var loopback = require('../loopback');
|
||||
|
||||
/**
|
||||
* Export the middleware.
|
||||
*/
|
||||
|
||||
module.exports = models;
|
||||
|
||||
/**
|
||||
* Return a script that defines all remote models.
|
||||
*/
|
||||
|
||||
function models(app) {
|
||||
return function (req, res, next) {
|
||||
var script = 'window.loopback.remoteModels = ';
|
||||
var models = [];
|
||||
app.handler('rest').adapter.getClasses().forEach(function(c) {
|
||||
if (!c.ctor) {
|
||||
// Skip classes that don't have a shared ctor
|
||||
// as they are not LoopBack models
|
||||
console.error('Skipping %j as it is not a LoopBack model', name);
|
||||
return;
|
||||
}
|
||||
models.push(toJSON(c));
|
||||
});
|
||||
res.send(script + JSON.stringify(models, null, 2));
|
||||
}
|
||||
}
|
||||
|
||||
function toJSON(sharedClass) {
|
||||
var model = loopback.getModel(sharedClass.name);
|
||||
|
||||
var result = {
|
||||
modelName: model.modelName,
|
||||
settings: model.settings,
|
||||
properties: model.properties,
|
||||
baseRoute: sharedClass.routes[0],
|
||||
methods: sharedClass.methods
|
||||
};
|
||||
|
||||
result.settings.base = model.super_.modelName;
|
||||
|
||||
return result;
|
||||
}
|
Loading…
Reference in New Issue