rittenhop-ghost/versions/5.94.2/core/server/models/action.js

36 lines
985 B
JavaScript
Raw Normal View History

const ghostBookshelf = require('./base');
const Action = ghostBookshelf.Model.extend({
tableName: 'actions',
candidates() {
return Object.keys(ghostBookshelf.registry.models).map((key) => {
const model = ghostBookshelf.registry.models[key];
return [model, model.prototype.tableName.replace(/s$/, '')];
});
},
actor() {
return this.morphTo('actor', ['actor_type', 'actor_id'], ...this.candidates());
},
resource() {
return this.morphTo('resource', ['resource_type', 'resource_id'], ...this.candidates());
}
}, {
orderDefaultOptions: function orderDefaultOptions() {
return {
created_at: 'DESC'
};
},
add(data, unfilteredOptions = {}) {
const options = this.filterOptions(unfilteredOptions, 'add');
return ghostBookshelf.Model.add.call(this, data, options);
}
});
module.exports = {
Action: ghostBookshelf.model('Action', Action)
};