rules.js 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. import Boards from '/models/boards';
  2. import Actions from '/models/actions';
  3. import Triggers from '/models/triggers';
  4. import Rules from '/models/rules';
  5. Meteor.publish('rules', ruleId => {
  6. check(ruleId, String);
  7. const ret = ReactiveCache.getRules(
  8. {
  9. _id: ruleId,
  10. },
  11. {},
  12. true,
  13. );
  14. return ret;
  15. });
  16. Meteor.publish('allRules', () => {
  17. const ret = ReactiveCache.getRules({}, {}, true);
  18. return ret;
  19. });
  20. Meteor.publish('allTriggers', () => {
  21. const ret = ReactiveCache.getTriggers({}, {}, true);
  22. return ret;
  23. });
  24. Meteor.publish('allActions', () => {
  25. const ret = ReactiveCache.getActions({}, {}, true);
  26. return ret;
  27. });
  28. Meteor.publish('rulesReport', () => {
  29. const rules = ReactiveCache.getRules({}, {}, true);
  30. const actionIds = [];
  31. const triggerIds = [];
  32. const boardIds = [];
  33. rules.forEach(rule => {
  34. actionIds.push(rule.actionId);
  35. triggerIds.push(rule.triggerId);
  36. boardIds.push(rule.boardId);
  37. });
  38. const ret = [
  39. rules,
  40. ReactiveCache.getActions({ _id: { $in: actionIds } }, {}, true),
  41. ReactiveCache.getTriggers({ _id: { $in: triggerIds } }, {}, true),
  42. ReactiveCache.getBoards({ _id: { $in: boardIds } }, { fields: { title: 1 } }, true),
  43. ];
  44. return ret;
  45. });