9fe573a0c5
- Simplify the `init` method in `models/index.js` so that it no longer returns a promise. Easier to use. - Eliminates the `deleteAllContent` method from `models/index.js` as it can all be handled at the API layer in a single spot. - Optimize `destroyAllContent` in `api/db.js`. Eliminates double-fetching every post from the database and converting it to JSON. Also only fetches ids from the database instead of the entire model. - Eliminates the custom static method `destroy` in the Post model in favor of handling detaching tag relations in a single place (the `destroying` event). This also eliminates a big source of unneeded database round trips--needing to get post ids to feed into `Post.destroy()` which then re-fetches the post again.
45 lines
561 B
JavaScript
45 lines
561 B
JavaScript
/**
|
|
* Dependencies
|
|
*/
|
|
|
|
var _ = require('lodash'),
|
|
|
|
exports,
|
|
models;
|
|
|
|
/**
|
|
* Expose all models
|
|
*/
|
|
|
|
exports = module.exports;
|
|
|
|
models = [
|
|
'accesstoken',
|
|
'app-field',
|
|
'app-setting',
|
|
'app',
|
|
'client-trusted-domain',
|
|
'client',
|
|
'permission',
|
|
'post',
|
|
'refreshtoken',
|
|
'role',
|
|
'settings',
|
|
'tag',
|
|
'user'
|
|
];
|
|
|
|
function init() {
|
|
exports.Base = require('./base');
|
|
|
|
models.forEach(function (name) {
|
|
_.extend(exports, require('./' + name));
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Expose `init`
|
|
*/
|
|
|
|
exports.init = init;
|