From 398b35e12ed8986a8fe05e6ffb8b80159422623e Mon Sep 17 00:00:00 2001 From: Robert Richter Date: Tue, 3 Mar 2020 21:31:01 +0100 Subject: [PATCH] =?UTF-8?q?update=20Di=203.=20M=C3=A4r=2021:31:01=20CET=20?= =?UTF-8?q?2020?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server.js | 31 ++++++++++++++++--------------- server/routing.js | 44 ++++++++++++++++++++++++++++++-------------- server/sql_qry.js | 10 ++++------ 3 files changed, 50 insertions(+), 35 deletions(-) diff --git a/server.js b/server.js index abde93a..7a28f97 100644 --- a/server.js +++ b/server.js @@ -1,20 +1,21 @@ // Module laden -var fs = require('fs'); -var express = require('express'); -var app = express(); -var http = require('http') //.Server(app); -var https = require('https'); //.Server(app); -var webserver = https.createServer({ +const fs = require('fs'); +const express = require('express'); +const app = express(); +const http = require('http') //.Server(app); +const https = require('https'); //.Server(app); +const webserver = https.createServer({ key: fs.readFileSync('./misc/server.key', 'utf8'), cert: fs.readFileSync('./misc/server.cert', 'utf8') }, app); -var io = require('socket.io').listen(webserver); -var async = require('async'); -var path = require('path'); -var favicon = require('serve-favicon'); -var bodyParser = require('body-parser'); -var bcrypt = require('bcrypt'); -var passport = require('passport'); +const io = require('socket.io').listen(webserver); +const async = require('async'); +const path = require('path'); +const favicon = require('serve-favicon'); +const bodyParser = require('body-parser'); +const bcrypt = require('bcrypt'); +const passport = require('passport'); +const uuidv4 = require('uuid/v4'); // Express-Einstellungen app.set('views', path.join(__dirname, 'views')); @@ -30,12 +31,12 @@ app.use(bodyParser.urlencoded({ // Scripte einbinden var app_cfg = require('./server/app_cfg.js'); var sql_cfg = require('./server/sql_cfg')(fs, bcrypt, app_cfg); -var sql = require('./server/sql_qry')(sql_cfg, async, app_cfg); +var sql = require('./server/sql_qry')(sql_cfg, uuidv4, app_cfg); var waip = require('./server/waip')(io, sql, async, app_cfg); 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); -var routes = require('./server/routing')(app, sql, app_cfg, passport, auth, waip, udp); +var routes = require('./server/routing')(app, sql, uuidv4, app_cfg, passport, auth, waip, udp); // Server starten webserver.listen(app_cfg.global.https_port, function() { diff --git a/server/routing.js b/server/routing.js index cae0522..ddeef21 100644 --- a/server/routing.js +++ b/server/routing.js @@ -1,6 +1,6 @@ -module.exports = function(app, sql, app_cfg, passport, auth, waip, udp) { +module.exports = function(app, sql, uuidv4, app_cfg, passport, auth, waip, udp) { - // get index + // Startseite app.get('/', function(req, res) { sql.db_list_wachen(function(data) { var data_wachen = data @@ -21,21 +21,21 @@ module.exports = function(app, sql, app_cfg, passport, auth, waip, udp) { }); }); - // get /waip + // /waip nach /waip/0 umleiten app.get('/waip', function(req, res) { res.redirect('/waip/0'); }); - // get /waip/ + // Alarmmonitor aufloesen /waip/ app.get('/waip/:wachen_id', function(req, res, next) { var parmeter_id = req.params.wachen_id; - sql.db_wache_vorhanden(parmeter_id, function(result) { + sql.db_wache_vorhanden(parmeter_id, function(wache) { if (result) { res.render('waip', { public: app_cfg.public, title: 'Alarmmonitor', wachen_id: parmeter_id, - data_wache: ' ' + result.name, + data_wache: wache.name, app_id: app_cfg.global.app_id, user: req.user }); @@ -47,8 +47,20 @@ module.exports = function(app, sql, app_cfg, passport, auth, waip, udp) { }); }); - // get /rueckmeldung + // Rueckmeldungs-Aufruf ohne waip_uuid eblehnen + app.get('/rmld', function(req, res, next) { + var err = new Error('Rückmeldungen sind nur mit gültiger Einsatz-ID erlaubt!'); + err.status = 404; + next(err); + }); + + // Rueckmeldungs-Aufruf mit waip_uuid aber ohne rmld_uuid an zufällige rmld_uuid weiterleiten app.get('/rmld/:waip_uuid', function(req, res, next) { + res.redirect('/rmld/' + req.params.waip_uuid + '/' + uuidv4()); + }); + + // Rueckmeldung anzeigen /rueckmeldung/waip_uuid/rmld_uuid + app.get('/rmld/:waip_uuid/:rmld_uuid', function(req, res, next) { var waip_uuid = req.params.waip_uuid; sql.db_get_einsatzdaten_by_uuid(waip_uuid, function(einsatzdaten) { if (einsatzdaten) { @@ -56,22 +68,26 @@ module.exports = function(app, sql, app_cfg, passport, auth, waip, udp) { public: app_cfg.public, title: 'Einsatz-Rückmeldung', user: req.user, - einsatzdaten: einsatzdaten + einsatzdaten: einsatzdaten, + modaldata: req.query.modal }); } else { - var err = new Error('Der angefragte Einsatz ist nicht vorhanden!'+waip_uuid); + var err = new Error('Der angefragte Einsatz ist nicht - oder nicht mehr - vorhanden!'); err.status = 404; next(err); }; }); }); - app.post('/rmld/:waip_uuid', function(req, res) { - console.log('post_rueckmeldung '+JSON.stringify(req.body)); - sql.db_save_response(req.body, function(result){ + // Rueckmeldung entgegennehmen + app.post('/rmld/:waip_uuid/:rmld_uuid', function(req, res) { + var waip_uuid = req.params.waip_uuid; + var rmld_uuid = req.params.rmld_uuid; + sql.db_save_rmld(req.body, function(result){ if (result) { - res.redirect('/rmld/' + req.params.waip_uuid); - waip.reuckmeldung_verteilen_by_uuid(req.params.waip_uuid); + var string = encodeURIComponent(result); + res.redirect('/rmld/' + waip_uuid + '/' + rmld_uuid + '/?modal=' + string); + waip.reuckmeldung_verteilen_by_uuid(req.params.rmld_uuid); } else { var err = new Error('Fehler beim senden der Rückmeldung!'); err.status = 501; diff --git a/server/sql_qry.js b/server/sql_qry.js index bfa7d8e..06597e8 100644 --- a/server/sql_qry.js +++ b/server/sql_qry.js @@ -1,7 +1,4 @@ -module.exports = function(db, async, app_cfg) { - - // Module laden - const uuidv4 = require('uuid/v4'); +module.exports = function(db, uuidv4, app_cfg) { // ermittelt den letzten vorhanden Einsatz zu einer Wache function db_einsatz_vorhanden(wachen_id, user_id, callback) { @@ -604,7 +601,7 @@ module.exports = function(db, async, app_cfg) { }); };*/ - function db_save_response(responseobj, callback) { + function db_save_rmld(responseobj, callback) { // Rueckmeldung aufarbeiten @@ -674,6 +671,7 @@ module.exports = function(db, async, app_cfg) { \'` + reuckmeldung.wache_name + `\')`), function(err) { //console.log(err); if (err == null) { + // TODO: Rueckmeldung-UUID zurückgeben callback && callback('OK'); } else { callback && callback(null); @@ -831,7 +829,7 @@ module.exports = function(db, async, app_cfg) { db_set_userconfig: db_set_userconfig, db_get_sockets_to_standby: db_get_sockets_to_standby, //db_update_response: db_update_response, - db_save_response: db_save_response, + db_save_rmld: db_save_rmld, db_get_response_gesamter_einsatz: db_get_response_gesamter_einsatz, db_get_response_wache: db_get_response_wache, db_get_einsatzdaten_by_uuid: db_get_einsatzdaten_by_uuid,