/**
*
* Handles incoming state information and persists them
* at the coredatabase.
*
* (c) Jens Dinstühler 2020
*
* Version 1.0.0
*
*
*/
const EventEmitter = require('events');
class CoreStateHandler extends EventEmitter {
constructor() {
super();
}
/**
* Saves new state Information into core database
* @param {stateInfo} stateInfo
*/
persistNewStateInformation(stateInfo) {
if ((typeof stateInfo != 'undefined') && (typeof stateInfo.radioStatus != 'undefined')) {
if (typeof stateInfo.radioStatusShort != 'undefined'){
global.coreDb.run(`INSERT INTO gearStateStore (issi, radioState, radioStatusHumanReadable, radioStatusShort) VALUES (?, ?, ?, ?)`,
[
stateInfo.issi,
stateInfo.radioStatus,
stateInfo.radioStatusHumanReadable,
stateInfo.radioStatusShort
],
function (err) {
if (err) {
global.plgManager.logger.error('CORE | HANDLERSTATE | Error inserting new state to coredatabase: ' + err.message);
console.log('CORE | HANDLERSTATE | Error inserting new state to coredatabase: ' + err.message);
} else {
global.plgManager.logger.debug(`CORE | HANDLERSTATE | New State Info has been inserted to coredatabase`);
console.log(`CORE | HANDLERSTATE | New State Info has been inserted to coredatabase`);
}
});
} else {
global.coreDb.run(`INSERT INTO gearStateStore (issi, radioState, radioStatusHumanReadable) VALUES (?, ?, ?)`,
[
stateInfo.issi,
stateInfo.radioStatus,
stateInfo.radioStatusHumanReadable
],
function (err) {
if (err) {
global.plgManager.logger.error('CORE | HANDLERSTATE | Error inserting new state to coredatabase: ' + err.message);
console.log('CORE | HANDLERSTATE | Error inserting new state to coredatabase: ' + err.message);
} else {
global.plgManager.logger.debug(`CORE | HANDLERSTATE | New State Info has been inserted to coredatabase`);
console.log(`CORE | HANDLERSTATE | New State Info has been inserted to coredatabase`);
}
});
}
} else {
global.plgManager.logger.error('CORE | HANDLERSTATE | Error persisting state');
}
}
}
module.exports = CoreStateHandler;