34 lines
1 KiB
JavaScript
34 lines
1 KiB
JavaScript
const logger = require('./logger.js');
|
|
const { httpPOST } = require('./util.js');
|
|
|
|
let enabled;
|
|
|
|
async function initialize() {
|
|
enabled = global.config.blinky !== undefined &&
|
|
global.config.blinky.enabled &&
|
|
global.config.blinky.host !== undefined &&
|
|
global.config.blinky.port !== undefined &&
|
|
global.config.blinky.events !== undefined;
|
|
}
|
|
|
|
async function handleEvent(eventName) {
|
|
if (!enabled || eventName === undefined) {
|
|
return;
|
|
}
|
|
const event = global.config.blinky.events[eventName];
|
|
if (event === undefined || event.mode === undefined) {
|
|
return;
|
|
}
|
|
logger.info('handling blinky event \'' + eventName + '\'...');
|
|
try {
|
|
await httpPOST(global.config.blinky.host, global.config.blinky.port, event.mode, event.args);
|
|
logger.debug('blinky event \'' + eventName + '\' successfully handled');
|
|
} catch (err) {
|
|
logger.error('blinky event \'' + eventName + '\' encountered an error: ' + err);
|
|
}
|
|
}
|
|
|
|
module.exports = {
|
|
initialize,
|
|
handleEvent
|
|
} |