diff --git a/server.js b/server.js index 911fd1c..d67587e 100644 --- a/server.js +++ b/server.js @@ -40,7 +40,7 @@ var sql = require('./server/sql_qry')(sql_cfg, uuidv4, app_cfg); var api = require('./server/api')(sql_cfg, uuidv4, app_cfg); var brk = require('./server/broker')(app_cfg, sql, uuidv4); var proof = require('./server/proof')(app_cfg, sql); -var waip = require('./server/waip')(io, sql, brk, async, app_cfg, api, proof); +var waip = require('./server/waip')(io, sql, fs, brk, async, app_cfg, api, proof); var socket = require('./server/socket')(io, sql, app_cfg, waip); var udp = require('./server/udp')(app_cfg, waip, sql); var auth = require('./server/auth')(app, app_cfg, sql_cfg, async, bcrypt, passport, io); diff --git a/server/sql_cfg.js b/server/sql_cfg.js index 1992d95..1cedab6 100644 --- a/server/sql_cfg.js +++ b/server/sql_cfg.js @@ -131,7 +131,6 @@ module.exports = function (fs, bcrypt, app_cfg) { vmtl_typ TEXT, vmlt_account_name TEXT, vmlt_account_group TEXT, - bkp_recipient TEXT, FOREIGN KEY(waip_wachen_id) REFERENCES waip_wachen(id))`); // Twitter-Account-Tabelle erstellen db.run(`CREATE TABLE waip_tw_accounts ( @@ -140,7 +139,14 @@ module.exports = function (fs, bcrypt, app_cfg) { tw_consumer_key TEXT, tw_consumer_secret TEXT, tw_access_token_key TEXT, - tw_access_token_secret TEXT)`); + tw_access_token_secret TEXT)`); + // Export-Tabelle erstellen + db.run(`CREATE TABLE waip_export ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + export_name TEXT, + export_text TEXT, + export_filter TEXT, + export_recipient TEXT)`); // Log erstellen db.run(`CREATE TABLE waip_log ( id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, diff --git a/server/sql_qry.js b/server/sql_qry.js index d74ffd5..4c6af5f 100755 --- a/server/sql_qry.js +++ b/server/sql_qry.js @@ -332,7 +332,7 @@ module.exports = function (db, uuidv4, app_cfg) { function db_einsatz_get_old(minuten, callback) { // veraltete Einsaetze finden - db.each('SELECT id, uuid FROM waip_einsaetze WHERE zeitstempel <= datetime(\'now\',\'-' + minuten + ' minutes\')', function (err, row) { + db.each('SELECT id, uuid, einsatznummer FROM waip_einsaetze WHERE zeitstempel <= datetime(\'now\',\'-' + minuten + ' minutes\')', function (err, row) { if (err == null && row) { callback && callback(row); } else { diff --git a/server/waip.js b/server/waip.js index 01e2ef5..b568459 100755 --- a/server/waip.js +++ b/server/waip.js @@ -1,4 +1,4 @@ -module.exports = function (io, sql, brk, async, app_cfg, api, proof) { +module.exports = function (io, sql, fs, brk, async, app_cfg, api, proof) { // Module laden const json2csv = require('json2csv'); @@ -384,18 +384,37 @@ module.exports = function (io, sql, brk, async, app_cfg, api, proof) { }); }; }); - // FIXME: Rueckmeldung löschen, und vorher backup + // FIXME: Rueckmeldung löschen, und vorher ggf. per Mail versenden bzw. Backup speichern sql.db_rmld_get_by_waipuuid(waip.uuid, function (full_rmld) { - // full_rmld in csv umwandeln - json2csv({data: json.car, fields: ['name', 'price', 'color']}, function(err, csv) { + // originale Einsatznummer hinzufuegen, fuer spaetere Recherche + full_rmld.einsatznummer = waip.einsatznummer + // CSV-Spalten definieren + var csv_col = ['id', 'einsatznummer', 'waip_uuid', 'rmld_uuid', 'alias', 'einsatzkraft', 'maschinist', 'fuehrungskraft', 'agt' ,'set_time' ,'arrival_time' ,'wache_id' ,'wache_nr' ,'wache_name']; + // gesamte CSV erstellen, falls aktiviert + + + CREATE TABLE waip_export ( + id INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT UNIQUE, + export_name TEXT, + export_text TEXT, + export_filter TEXT, + export_recipient TEXT)`); + + + json2csv({data: full_rmld, fields: csv_col}, function(err, csv) { if (err) console.log(err); + // CSV in Backup-Ordner speichern, falls aktiviert fs.writeFile('cars.csv', csv, function(err) { if (err) throw err; console.log('cars file saved'); }); + }); + // teil-CSV fuer einzelne Wache erstellen - // CSV speichern in bkp-ordner + + // CSV per Mail versenden, falls aktiviert + // einzelne Wachen // später löschen, wenn app_cfg.global.backup_rmld false // Mail-Adressen fuer Wachen zu dieser Einsatz-ID ermitteln, siehe db_vmtl_get_list // csv an diese Mail-Adressen per Mail senden @@ -409,7 +428,6 @@ module.exports = function (io, sql, brk, async, app_cfg, api, proof) { }); // löschen alter Sounddaten nach alter (15min) und socket-id (nicht mehr verbunden) - const fs = require('fs'); fs.readdirSync(process.cwd() + app_cfg.global.soundpath).forEach(file => { // nur die mp3s von alten clients loeschen if (file.substring(0, 4) != 'bell' && file.substring(file.length - 3) == 'mp3' && file.substring(file.length - 8) != '_tmp.mp3') {