From f5796faa841c9e78016c456a528257090b73759f Mon Sep 17 00:00:00 2001 From: Martin Filser Date: Sun, 5 Feb 2023 00:07:52 +0100 Subject: [PATCH] Move every Triggers.findOne(idOrFirstObjectSelector, options) to the ReactiveCache --- client/components/rules/ruleDetails.js | 4 +-- imports/reactiveCache.js | 50 ++++++++++++++++++++++++++ models/rules.js | 4 +-- 3 files changed, 53 insertions(+), 5 deletions(-) diff --git a/client/components/rules/ruleDetails.js b/client/components/rules/ruleDetails.js index 581fa3752..235f17179 100644 --- a/client/components/rules/ruleDetails.js +++ b/client/components/rules/ruleDetails.js @@ -10,9 +10,7 @@ BlazeComponent.extendComponent({ trigger() { const ruleId = this.data().ruleId; const rule = ReactiveCache.getRule(ruleId.get()); - const trigger = Triggers.findOne({ - _id: rule.triggerId, - }); + const trigger = ReactiveCache.getTrigger(rule.triggerId); const desc = trigger.description(); const upperdesc = desc.charAt(0).toUpperCase() + desc.substr(1); return upperdesc; diff --git a/imports/reactiveCache.js b/imports/reactiveCache.js index 51e196678..3d2733ee9 100644 --- a/imports/reactiveCache.js +++ b/imports/reactiveCache.js @@ -123,6 +123,14 @@ ReactiveCacheServer = { const ret = Actions.find(selector, options).fetch(); return ret; }, + getTrigger(idOrFirstObjectSelector, options) { + const ret = Triggers.findOne(idOrFirstObjectSelector, options); + return ret; + }, + getTriggers(selector, options) { + const ret = Triggers.find(selector, options).fetch(); + return ret; + }, getCurrentSetting() { const ret = Settings.findOne(); return ret; @@ -497,6 +505,30 @@ ReactiveCacheClient = { const ret = this.__actions.get(Jsons.stringify(select)); return ret; }, + getTrigger(idOrFirstObjectSelector, options) { + const idOrFirstObjectSelect = {idOrFirstObjectSelector, options} + if (!this.__trigger) { + this.__trigger = new DataCache(_idOrFirstObjectSelect => { + const __select = Jsons.parse(_idOrFirstObjectSelect); + const _ret = Triggers.findOne(__select.idOrFirstObjectSelector, __select.options); + return _ret; + }); + } + const ret = this.__trigger.get(Jsons.stringify(idOrFirstObjectSelect)); + return ret; + }, + getTriggers(selector, options) { + const select = {selector, options} + if (!this.__triggers) { + this.__triggers = new DataCache(_select => { + const __select = Jsons.parse(_select); + const _ret = Triggers.find(__select.selector, __select.options).fetch(); + return _ret; + }); + } + const ret = this.__triggers.get(Jsons.stringify(select)); + return ret; + }, getCurrentSetting() { if (!this.__currentSetting || !this.__currentSetting.get()) { this.__currentSetting = new DataCache(() => { @@ -796,6 +828,24 @@ ReactiveCache = { } return ret; }, + getTrigger(idOrFirstObjectSelector, options) { + let ret; + if (Meteor.isServer) { + ret = ReactiveCacheServer.getTrigger(idOrFirstObjectSelector, options); + } else { + ret = ReactiveCacheClient.getTrigger(idOrFirstObjectSelector, options); + } + return ret; + }, + getTriggers(selector, options) { + let ret; + if (Meteor.isServer) { + ret = ReactiveCacheServer.getTriggers(selector, options); + } else { + ret = ReactiveCacheClient.getTriggers(selector, options); + } + return ret; + }, getCurrentSetting() { let ret; if (Meteor.isServer) { diff --git a/models/rules.js b/models/rules.js index c29af114d..38b3c87a5 100644 --- a/models/rules.js +++ b/models/rules.js @@ -61,13 +61,13 @@ Rules.helpers({ return ReactiveCache.getAction(this.actionId); }, getTrigger() { - return Triggers.findOne({ _id: this.triggerId }); + return ReactiveCache.getTrigger(this.triggerId); }, board() { return ReactiveCache.getBoard(this.boardId); }, trigger() { - return Triggers.findOne({ _id: this.triggerId }); + return ReactiveCache.getTrigger(this.triggerId); }, action() { return ReactiveCache.getAction(this.actionId);