From 8ec2f559ea220536fd06d3e02e60599ec704f353 Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 18 Mar 2019 09:47:59 +0100 Subject: [PATCH 1/2] Revert "message ids array" This reverts commit 51bcef67fe409e365a8d7f531c1327ef71db29fb. --- express-server/db-connect/db-connect.js | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index cba9bfa0..4b0b1521 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -11,9 +11,8 @@ const stringSimilarity = require('string-similarity'); async function updateUser(uid, mid, name, picture, email) { try { - await nonQuery('INSERT INTO "User" (username, name, picture, email) VALUES ($1, $2, $3, $4);', [uid, name, picture, email]); - await nonQuery('UPDATE "User" SET message_id = array_append(message_id, $1) WHERE username = $2 ;', [mid, uid]); - + await nonQuery('INSERT INTO "User" (username, message_id, name, picture, email) VALUES ($1, $2, $3, $4, $5);', [uid, mid, name, picture, email]); + } catch (error) { console.error(error); } From f31b24afb93fa619c65cfe1998c3cc47d247275c Mon Sep 17 00:00:00 2001 From: Georg Reisinger <43533139+GeorgReisinger@users.noreply.github.com> Date: Mon, 18 Mar 2019 18:05:11 +0100 Subject: [PATCH 2/2] Push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit getMessageIds wurde der sql reperiert in push wurde sendMultiplePush hinzugefügt, aber noch fehlerhaft --- express-server/db-connect/db-connect.js | 23 +++++++++++++++----- express-server/push/push.js | 29 ++++++++++++++++++++++--- express-server/routes/index.js | 1 + 3 files changed, 45 insertions(+), 8 deletions(-) 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);