1
0
Fork 0
mirror of synced 2024-09-21 20:01:32 +12:00
budibase/packages/server/src/events/index.js

38 lines
888 B
JavaScript
Raw Normal View History

const EventEmitter = require("events").EventEmitter
2020-06-01 21:41:28 +12:00
const CouchDB = require("../db")
2020-05-25 09:54:08 +12:00
2020-06-01 04:12:52 +12:00
const emitter = new EventEmitter()
2020-06-01 21:41:28 +12:00
async function determineWorkflowsToTrigger(instanceId, event) {
const db = new CouchDB(instanceId)
2020-06-01 04:12:52 +12:00
const workflowsToTrigger = await db.query("database/by_workflow_trigger", {
2020-06-01 21:41:28 +12:00
key: [event],
2020-06-01 04:12:52 +12:00
})
2020-06-01 21:41:28 +12:00
return workflowsToTrigger.rows
2020-06-01 04:12:52 +12:00
}
emitter.on("record:save", async function(event) {
2020-06-01 21:41:28 +12:00
const workflowsToTrigger = await determineWorkflowsToTrigger(
instanceId,
"record:save"
)
2020-06-01 04:12:52 +12:00
for (let workflow of workflowsToTrigger) {
2020-06-01 22:52:15 +12:00
// TODO: server side workflow triggers
2020-06-01 04:12:52 +12:00
}
})
2020-06-01 21:41:28 +12:00
emitter.on("record:delete", async function(event) {
const workflowsToTrigger = await determineWorkflowsToTrigger(
instanceId,
"record:delete"
)
2020-06-01 04:12:52 +12:00
for (let workflow of workflowsToTrigger) {
2020-06-01 22:52:15 +12:00
// TODO: server side workflow triggers
2020-06-01 04:12:52 +12:00
}
})
module.exports = emitter