From a881d413fa8f38e03ce4cd649f7e3b1c4eef21cd Mon Sep 17 00:00:00 2001 From: LukasNowy Date: Tue, 22 Jan 2019 13:01:26 +0100 Subject: [PATCH] menual invite, get uids from shoppinglist --- express-server/db-connect/db-connect.js | 60 ++++++++++++++++++- .../public/javascripts/firebase-app.js | 10 ++++ express-server/public/javascripts/login.js | 10 +++- express-server/routes/index.js | 42 +++++++++++++ 4 files changed, 119 insertions(+), 3 deletions(-) diff --git a/express-server/db-connect/db-connect.js b/express-server/db-connect/db-connect.js index 8a0476bd..5e8c416b 100644 --- a/express-server/db-connect/db-connect.js +++ b/express-server/db-connect/db-connect.js @@ -1,5 +1,40 @@ const { query, nonQuery } = require("../db-config/postgresql-common"); +//Create User Info + +async function updateUser(uid, mid) { + try { + let exists = await query('SELECT row_to_json(username) FROM "User" As obj WHERE username = $1;', [uid]); + + //existiert + if(exists != undefined) { + await nonQuery('UPDATE "User" SET message_id = $1 WHERE username = $2', [mid, uid]); + } + + //existiert nicht + else { + await nonQuery('INSERT INTO "User" (username, message_id) VALUES ($1, $2);', [uid, mid]); + } + } + + catch (error) { + console.error(error); + } +} + +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]); + return users_to_array(admin, members); + + } + + catch(error) { + + } +} + //SELECT own shopping lists async function getShoppinglistsAdmin(username) { try { @@ -242,7 +277,6 @@ async function verifyInvite(link, user_id) { try { let result = await query('SELECT row_to_json("Shoppinglist") AS obj FROM "Shoppinglist" WHERE invitelink = $1;', [link]); let sl_id = result[0].sl_id; - console.log(result[0].sl_id); await nonQuery('INSERT INTO "Shoppinglist_member" (username, sl_id) VALUES ($1, $2);', [user_id, sl_id]); } @@ -262,6 +296,16 @@ async function createInvite(sl_id) { } } +async function manInvite(sl_id, uid) { + try { + await nonQuery('INSERT INTO "Shoppinglist_member" (username, sl_id) VALUES ($1, $2);', [uid, sl_id]); + } + + catch(error) { + console.error(error); + } +} + @@ -337,7 +381,19 @@ function generateInviteLink() { return output; } +function users_to_array(admin, members) { + let users = []; + + users.push(admin.username); + + for(let item of members) { + users.push(item.username); + } + + return users; +} + module.exports = { getShoppinglistsAdmin, getShoppinglistsShared, newShoppinglist, displayShoppinglist, deleteShoppinglist, addGroup, - addItem, verifyInvite, createInvite, editShoppinglist, editGroup, editItem, deleteGroup, deleteItem + addItem, verifyInvite, createInvite, editShoppinglist, editGroup, editItem, deleteGroup, deleteItem, manInvite, updateUser } diff --git a/express-server/public/javascripts/firebase-app.js b/express-server/public/javascripts/firebase-app.js index 8c278144..1330c8f9 100644 --- a/express-server/public/javascripts/firebase-app.js +++ b/express-server/public/javascripts/firebase-app.js @@ -26,6 +26,16 @@ msg.requestPermission() console.error("Msg Error: ", err) }) +axios.post('/user', { + message_id: 'test', + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); +}); + msg.onMessage(payload => { const title = payload.data.title new Notification(title, { body: payload.data.text}); diff --git a/express-server/public/javascripts/login.js b/express-server/public/javascripts/login.js index 361e44e6..1808d385 100644 --- a/express-server/public/javascripts/login.js +++ b/express-server/public/javascripts/login.js @@ -71,6 +71,14 @@ var vue = new Vue({ } }, mounted() { - + axios.post('/user', { + message_id: 'test', + }) + .then(function (response) { + console.log(response); + }) + .catch(function (error) { + console.log(error); + }); } }); \ No newline at end of file diff --git a/express-server/routes/index.js b/express-server/routes/index.js index b48d1eec..9caa6788 100644 --- a/express-server/routes/index.js +++ b/express-server/routes/index.js @@ -301,6 +301,25 @@ router.post("/invite", async (req, res) => { } }); +router.post("/maninvite", async (req, res) => { + + var token = req.query.idtoken; + var uid; + firebaseAdmin.auth().verifyIdToken(token) + .then(function(decodedToken) { + uid = decodedToken.uid; + console.log("UID: ", uid); + try { + res.status(200).send(postgres.manInvite(req.body.sl_id, uid)); + } + catch(err) { + console.log(error); + } + }).catch(function(error) { + console.log(error) + }); +}); + router.get("/invite/:link", async (req, res) => { var token = req.query.idtoken; var uid; @@ -320,6 +339,29 @@ router.get("/invite/:link", async (req, res) => { }); }); + +//Update User + +router.post("/user", async (req, res) => { + var token = req.query.idtoken; + var uid; + firebaseAdmin.auth().verifyIdToken(token) + .then(function(decodedToken) { + uid = decodedToken.uid; + console.log("UID: ", uid); + try { + postgres.updateUser(uid, req.body.message_id); + } + + catch(err) { + + } + }).catch(function(error) { + console.log(error) + }); +}); + + router.get("/scan/", async (req, res,) => { res.render("ocrscan"); });