/** * Rules manager class */ class RulesManager{ name = 'rules'; /** * Class initializer * @param {App} app Class initializer */ init(app){ const {db} = app; /** * Creates a new rule * @param {Context} ctx Request context * @param {Rule} data the rule */ this.create = async function(ctx, data){ } /** * Reads rule by ID * @param {Number} id rule ID * @returns {Rule} */ this.read = async function(id){ } /** * Updates rule * @param {Context} ctx Request context * @param {Rule} data the rule */ this.update = async function(ctx, data){ } /** * Removes rule by ID * @param {Number} id rule ID */ this.remove = async function(id){ } /** * Returns a set of rules by given criteria * @param {Query} query criteria * @returns {Rule[]} */ this.list = async function(query){ } } /** * Class starter * @param {App} app The application */ async start(app){ } } /** * Rule entity */ class Rule { /** * Rule name * @type string */ name = null; } export { RulesManager }