diff --git a/packages/server/src/api/controllers/workflow/actions/DELAY.js b/packages/server/src/api/controllers/workflow/actions/DELAY.js new file mode 100644 index 0000000000..97c70db8ae --- /dev/null +++ b/packages/server/src/api/controllers/workflow/actions/DELAY.js @@ -0,0 +1,5 @@ +const wait = ms => new Promise(resolve => setTimeout(resolve, ms)) + +module.exports = async function delay({ args }) { + await wait(args.time) +} diff --git a/packages/server/src/api/controllers/workflow/actions/FILTER.js b/packages/server/src/api/controllers/workflow/actions/FILTER.js new file mode 100644 index 0000000000..94b7d8de81 --- /dev/null +++ b/packages/server/src/api/controllers/workflow/actions/FILTER.js @@ -0,0 +1,10 @@ +module.exports = async function filter({ args }) { + const { field, condition, value } = args + switch (condition) { + case "equals": + if (field !== value) return + break + default: + return + } +} diff --git a/packages/server/src/events/workflow.js b/packages/server/src/events/workflow.js index a997530241..d76f8e0e24 100644 --- a/packages/server/src/events/workflow.js +++ b/packages/server/src/events/workflow.js @@ -37,8 +37,6 @@ exports.serverStrategy = () => ({ }, run: async function(workflow, context) { for (let block of workflow.steps) { - if (block.type === "CLIENT") continue - const action = require(`../api/controllers/workflow/actions/${block.actionId}`) const response = await action({ args: this.bindContextArgs(block.args),