diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 4b0b1521..ebd77dff 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -1,3 +1,8 @@ +var push = require('../push/push.js') +// var axios = require('axios') + + + const { query, nonQuery @@ -6,7 +11,6 @@ const { const stringSimilarity = require('string-similarity'); - //Create User Info async function updateUser(uid, mid, name, picture, email) { @@ -20,8 +24,8 @@ async function updateUser(uid, mid, name, picture, email) { async function getmessageids(sl_id) { try { - let members = query('SELECT * FROM "Shoppinglist_member" WHERE sl_id = $1;', [sl_id]); - let admin = query('SELECT * FROM "Shoppinglist_admin" WHERE sl_id = $1;', [sl_id]); + let members = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_member" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]); + let admin = await query('SELECT row_to_json("User") AS obj FROM "Shoppinglist_admin" JOIN "User" USING (username) WHERE sl_id = $1;', [sl_id]); return users_to_array(admin, members); } catch (error) { @@ -141,6 +145,8 @@ async function editShoppinglist(sl_id, newname, newdescription, newcolor) { } catch (error) { console.error(error); } + + } /*async function generateUser() { @@ -193,6 +199,13 @@ async function addGroup(sl_id, name, color, hidden) { } catch (error) { console.error(error); } + var message_ids = await getmessageids(sl_id); + // for(var i = 0; i< message_ids.length(); i++){ + // console.log("msg to send: ", message_ids[i]) + // push.sendPush(message_ids[i], title, text); + // } + // push.sendPush(message_ids[0], "test", "test") + push.sendMultiplePush(message_ids, shoppinglist.name + " Gruppe wurde hinzugefügt!", "Zu " + shoppinglist.name + " wurde die Gruppe " + name + " hinzugefügt!"); } //add item into group @@ -497,10 +510,10 @@ function generateInviteLink() { function users_to_array(admin, members) { let users = []; - users.push(admin.username); + users.push(admin[0].message_id); for (let item of members) { - users.push(item.username); + users.push(item.message_id); } return users; diff --git a/express-server/push/push.js b/express-server/push/push.js index 7f2d5457..399b8910 100644 --- a/express-server/push/push.js +++ b/express-server/push/push.js @@ -1,6 +1,8 @@ - +var admin = require('firebase-admin'); function sendPush(msgtoken, title, text){ + + var message = { notification: { title: title, @@ -9,7 +11,7 @@ function sendPush(msgtoken, title, text){ token: msgtoken }; - firebaseAdmin.messaging().send(message) + admin.messaging().send(message) .then(function(response) { // See the MessagingDevicesResponse reference documentation for // the contents of response. @@ -20,6 +22,27 @@ function sendPush(msgtoken, title, text){ }); } + +function sendMultiplePush(message_ids, title, text){ + console.log(message_ids) + var message = { + data: { + title: title, + body: text + }, + tokens: message_ids + }; + + admin.messaging().sendMulticast(message) + .then(function(response) { + // See the MessagingDevicesResponse reference documentation for + // the contents of response. + console.log('Successfully sent message:', response); + }) + .catch(function(error) { + console.log('Error sending message:', error); + }); +} module.exports = { - sendPush + sendPush,sendMultiplePush } \ No newline at end of file diff --git a/express-server/routes/index.js b/express-server/routes/index.js index 5a38a682..b32cd2cb 100644 --- a/express-server/routes/index.js +++ b/express-server/routes/index.js @@ -17,6 +17,7 @@ var firebaseAdmin = admin.initializeApp({ //Push router.get('/push/:msgtoken/:message/:title', function (req, res, next) { + push.sendPush(req.params.msgtoken, req.params.title, req.params.message); var sender = "Message Token: " + req.params.msgtoken + " Message: " + req.params.message + " Title: " + req.params.title; res.status(200).send(sender);