rules.js 946 B

12345678910111213141516171819202122232425262728293031323334353637383940414243
  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. return Rules.find({
  8. _id: ruleId,
  9. });
  10. });
  11. Meteor.publish('allRules', () => {
  12. return Rules.find({});
  13. });
  14. Meteor.publish('allTriggers', () => {
  15. return Triggers.find({});
  16. });
  17. Meteor.publish('allActions', () => {
  18. return Actions.find({});
  19. });
  20. Meteor.publish('rulesReport', () => {
  21. const rules = Rules.find();
  22. const actionIds = [];
  23. const triggerIds = [];
  24. const boardIds = [];
  25. rules.forEach(rule => {
  26. actionIds.push(rule.actionId);
  27. triggerIds.push(rule.triggerId);
  28. boardIds.push(rule.boardId);
  29. });
  30. return [
  31. rules,
  32. Actions.find({ _id: { $in: actionIds } }),
  33. Triggers.find({ _id: { $in: triggerIds } }),
  34. Boards.find({ _id: { $in: boardIds } }, { fields: { title: 1 } }),
  35. ];
  36. });