diff --git a/server/sql_qry.js b/server/sql_qry.js index e989bfc..595da6a 100755 --- a/server/sql_qry.js +++ b/server/sql_qry.js @@ -705,7 +705,7 @@ module.exports = function(db, uuidv4, turf, app_cfg) { function db_get_response_gesamter_einsatz(waip_einsaetze_id, callback){ db.all(`SELECT response_json FROM waip_response - WHERE waip_einsaetze_id = ?`, [waip_einsaetze_id], function(err, row) { + WHERE waip_einsaetze_id = ?`, [waip_einsaetze_id], function(err, rows) { if (err == null && rows) { callback && callback(rows); } else { @@ -846,6 +846,33 @@ module.exports = function(db, uuidv4, turf, app_cfg) { }); }; + function db_get_twitter_list(waip_id, callback){ + // Pruefen ob fuer eine Wache in diesem Einsatz ein Twitter-Account mit Liste hinterlegt ist + db.get(`select t.waip_wachen_id, t.tw_account_id, t.tw_account_list from waip_twitter_wachen t + where waip_wachen_id = (select distinct w.id wachen_id from waip_wachen w left join waip_einsatzmittel em on em.wachenname = w.name_wache + where em.waip_einsaetze_ID = ?)`, [waip_id], function(err, twitter_liste) { + if (err == null && twitter_liste) { + console.log(twitter_liste); + // Falls Account und Liste hinterlegt ist, die Account-Zugangsdaten, Einsatz-UUID, Einsatzart und Wachenname auslesen + db.get(`select tw.tw_screen_name, tw_consumer_key, tw.tw_consumer_secret, tw.tw_access_token_key, tw.tw_access_token_secret, we.uuid, we.einsatzart, wa.name_wache + from waip_twitter_accounts tw, waip_einsaetze we, waip_wachen wa + where tw.id = ? AND we.id = ? AND wa.id = ?`, [twitter_liste.tw_account_id, waip_id, twitter_liste.waip_wachen_id], function(err, twitter_daten) { + console.log(twitter_daten); + console.log(err); + if (err == null && twitter_daten) { + // liste zu SQL-Select hinzufuegen + twitter_daten.list = twitter_liste.tw_account_list; + callback && callback(twitter_daten); + } else { + callback && callback(null); + }; + }); + } else { + callback && callback(null); + }; + }); + }; + return { db_einsatz_speichern: db_einsatz_speichern, db_einsatz_laden: db_einsatz_laden, @@ -882,7 +909,8 @@ module.exports = function(db, uuidv4, turf, app_cfg) { db_get_response_for_wache: db_get_response_for_wache, db_get_einsatzdaten_by_uuid: db_get_einsatzdaten_by_uuid, db_get_waipid_by_uuid:db_get_waipid_by_uuid, - db_get_single_response_by_rmlduuid, db_get_single_response_by_rmlduuid + db_get_single_response_by_rmlduuid, db_get_single_response_by_rmlduuid, + db_get_twitter_list: db_get_twitter_list }; }; diff --git a/server/twitter.js b/server/twitter.js index ec3938a..76bf0af 100755 --- a/server/twitter.js +++ b/server/twitter.js @@ -1,6 +1,6 @@ module.exports = function(twitter, uuidv4, app_cfg) { - function alert_twitter_list(twitter_data, err, callback) { + function alert_twitter_list(twitter_data, callback) { // tw.tw_screen_name, tw_consumer_key, tw.tw_consumer_secret, tw.tw_access_token_key, tw.tw_access_token_secret, we.uuid, we.einsatzart, wa.name_wache var client = new twitter({ @@ -9,11 +9,15 @@ module.exports = function(twitter, uuidv4, app_cfg) { access_token_key: twitter_data.tw_access_token_key, access_token_secret: twitter_data.tw_access_token_secret }); - - var params = {screen_name: 'nodejs', slug: twitter_data.list, count: 50}; + + var params = {list_id: 1237715592234315778};//owner_screen_name: twitter_data.tw_screen_name, slug: twitter_data.list, count: 50}; client.get('lists/members', params, function(error, members, response) { if (!error) { console.log(members); + callback && callback(members); + } else { + console.log(error); + callback && callback(null); }; }); }; diff --git a/server/waip.js b/server/waip.js index afbd4fe..21280cd 100755 --- a/server/waip.js +++ b/server/waip.js @@ -1,4 +1,4 @@ -module.exports = function(io, sql, async, app_cfg) { +module.exports = function(io, sql, tw, async, app_cfg) { // Einsatzmeldung in Datenbank speichern function einsatz_speichern(message) { @@ -27,25 +27,21 @@ module.exports = function(io, sql, async, app_cfg) { sql.db_log('Fehler-WAIP', 'Fehler: Wache für waip_id ' + waip_id + ' nicht vorhanden!'); }; }); - sql.db_get_twitter_list(waip_id, function(data) { - if (data) { - console.log(data); - data.forEach(function(row) { - // fuer jede Wache(row.room) die verbundenen Sockets(Clients) ermitteln und Einsatz verteilen - var room_sockets = io.sockets.adapter.rooms[row.room]; - //console.log(row); - //console.log(row.room); - //console.log(room_sockets); - //console.log(io.sockets.adapter); - if (typeof room_sockets !== 'undefined') { - Object.keys(room_sockets.sockets).forEach(function(socketId) { - einsatz_verteilen(waip_id, socketId, row.room); - sql.db_log('WAIP', 'Einsatz ' + waip_id + ' wird an ' + socketId + ' (' + row.room + ') gesendet'); - }); + sql.db_get_twitter_list(waip_id, function(twitter_data) { + if (twitter_data) { + console.log('Daten Twitter: ' + JSON.stringify(twitter_data)); + + // tw.tw_screen_name, tw_consumer_key, tw.tw_consumer_secret, tw.tw_access_token_key, tw.tw_access_token_secret, we.uuid, we.einsatzart, wa.name_wache + tw.alert_twitter_list(twitter_data, function(result) { + if (!result) { + sql.db_log('Twitter', 'Einsatz-Rückmeldung erfolgreichen an Twitter-Liste gesendet. ' + result); + } else { + sql.db_log('Twitter', 'Fehler beim senden der Einsatz-Rueckmeldung an Twitter: ' + result); }; }); + } else { - sql.db_log('Fehler-WAIP', 'Fehler: Wache für waip_id ' + waip_id + ' nicht vorhanden!'); + sql.db_log('Twitter', 'Keine Twitter-Liste für Einsatz ' + waip_id + ' hinterlegt.'); }; }); });