From 139b11e4cc13024e96e25eeeaab3a8dac8b60396 Mon Sep 17 00:00:00 2001 From: Christian Hofmaier Date: Mon, 15 Apr 2019 15:35:47 +0000 Subject: [eventmanager] integrate WoL utility - add column to db - add checkbox to frontend - implement scheduler --- server/api/events.js | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) (limited to 'server/api/events.js') diff --git a/server/api/events.js b/server/api/events.js index 63c25bc..5cea09b 100644 --- a/server/api/events.js +++ b/server/api/events.js @@ -5,6 +5,9 @@ var groupHelper = require(path.join(__appdir, 'lib', 'grouphelper')) var express = require('express') const { decorateApp } = require('@awaitjs/express') var router = decorateApp(express.Router()) +const zmq = require('zeromq') +const socket = zmq.socket('push') +socket.connect('ipc:///tmp/bas_zeromq_events') // ############################################################################ // ########################### GET requests ################################# @@ -44,6 +47,9 @@ router.postAsync('/blacklist', async (req, res) => { router.postAsync(['', '/:id'], async (req, res) => { if (req.query.delete !== undefined && req.query.delete !== 'false') { await db.event.destroy({ where: { id: req.params.id || req.body.ids } }).then(count => { res.send({ count }) }) + req.body.ids.forEach(id => { + socket.send(id) + }) } else { var promises = [] var promisesBlacklist = [] @@ -54,26 +60,28 @@ router.postAsync(['', '/:id'], async (req, res) => { // Update existing role eventDb = await db.event.findOne({ where: { id: req.params.id } }) if (eventDb !== null) { - promises.push(eventDb.update({ name: req.body.name, description: req.body.description, times: req.body.times, important: req.body.important, configId: req.body.config || null })) + promises.push(eventDb.update({ name: req.body.name, description: req.body.description, times: req.body.times, important: req.body.important, wakeonlan: req.body.wakeonlan, configId: req.body.config || null })) promises.push(eventDb.setGroups(req.body.groups, { through: { blacklist: 0 } })) promises.push(eventDb.setClients(req.body.clients, { through: { blacklist: 0 } })) await Promise.all(promises) promisesBlacklist.push(eventDb.addGroups(req.body.blacklistGroups, { through: { blacklist: 1 } })) promisesBlacklist.push(eventDb.addClients(req.body.blacklistClients, { through: { blacklist: 1 } })) await Promise.all(promisesBlacklist) + socket.send(eventDb.id) res.send({ id: req.params.id }) } else { res.status(404).end() } } else { // Create new role - eventDb = await db.event.create({ name: req.body.name, description: req.body.description, times: req.body.times, important: req.body.important, configId: req.body.config || null }) + eventDb = await db.event.create({ name: req.body.name, description: req.body.description, times: req.body.times, important: req.body.important, wakeonlan: req.body.wakeonlan, configId: req.body.config || null }) promises.push(eventDb.setGroups(req.body.groups, { through: { blacklist: 0 } })) promises.push(eventDb.setClients(req.body.clients, { through: { blacklist: 0 } })) await Promise.all(promises) promisesBlacklist.push(eventDb.addGroups(req.body.blacklistGroups, { through: { blacklist: 1 } })) promisesBlacklist.push(eventDb.addClients(req.body.blacklistClients, { through: { blacklist: 1 } })) await Promise.all(promisesBlacklist) + socket.send(eventDb.id) res.send({ id: req.body.id }) } } -- cgit v1.2.3-55-g7522