Fehler beoben

This commit is contained in:
LukasNowy 2019-03-24 20:00:42 +01:00
parent 524bf627e8
commit ad1e6f6d08
2 changed files with 104 additions and 26 deletions

View File

@ -135,7 +135,7 @@ async function newShoppinglist(name, description, username, color) {
//rename Shoppinglist //rename Shoppinglist
async function editShoppinglist(sl_id, newname, newdescription, newcolor) { async function editShoppinglist(sl_id, newname, newdescription, newcolor, uid) {
try { try {
let shoppinglist = await query('SELECT row_to_json("Shoppinglist") AS obj FROM "Shoppinglist" WHERE sl_id = $1;', [sl_id]); let shoppinglist = await query('SELECT row_to_json("Shoppinglist") AS obj FROM "Shoppinglist" WHERE sl_id = $1;', [sl_id]);
@ -150,6 +150,8 @@ async function editShoppinglist(sl_id, newname, newdescription, newcolor) {
if (shoppinglist.color != newcolor && newcolor != undefined) { if (shoppinglist.color != newcolor && newcolor != undefined) {
await nonQuery('UPDATE "Shoppinglist" SET color = $1 WHERE sl_id = $2;', [newcolor, sl_id]); await nonQuery('UPDATE "Shoppinglist" SET color = $1 WHERE sl_id = $2;', [newcolor, sl_id]);
} }
return getShoppinglistsAdmin(uid);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
@ -177,7 +179,7 @@ async function displayShoppinglist(sl_id) {
let members = await query('SELECT row_to_json("User") as obj FROM "User" JOIN "Shoppinglist_member" USING (username) WHERE sl_id = $1', [sl_id]); let members = await query('SELECT row_to_json("User") as obj FROM "User" JOIN "Shoppinglist_member" USING (username) WHERE sl_id = $1', [sl_id]);
let admin = await query('SELECT row_to_json("User") as obj FROM "User" JOIN "Shoppinglist_admin" USING (username) WHERE sl_id = $1', [sl_id]); let admin = await query('SELECT row_to_json("User") as obj FROM "User" JOIN "Shoppinglist_admin" USING (username) WHERE sl_id = $1', [sl_id]);
return items_in_groups(groups, items, sl_id, admin[0].username, admin[0].message_id, members, shoppinglist[0].name, shoppinglist[0].description, shoppinglist[0].invitelink); return items_in_groups(groups, items, sl_id, admin, members, shoppinglist[0].name, shoppinglist[0].description, shoppinglist[0].invitelink, shoppinglist[0].color);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
@ -246,6 +248,8 @@ async function editGroup(sl_id, group_id, name, color, hidden) {
await nonQuery('UPDATE "Group" SET hidden = $1 WHERE group_id = $2 AND sl_id = $3;', [hidden, group_id, sl_id]); await nonQuery('UPDATE "Group" SET hidden = $1 WHERE group_id = $2 AND sl_id = $3;', [hidden, group_id, sl_id]);
} }
return displayShoppinglist(sl_id);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
@ -267,6 +271,8 @@ async function editItem(sl_id, group_id, item_id, name, count) {
if (item.count != count && count != undefined) { if (item.count != count && count != undefined) {
await nonQuery('UPDATE "Item" SET count = $1 WHERE item_id = $2 AND group_id = $3 AND sl_id = $4', [count, item_id, group_id, sl_id]); await nonQuery('UPDATE "Item" SET count = $1 WHERE item_id = $2 AND group_id = $3 AND sl_id = $4', [count, item_id, group_id, sl_id]);
} }
return displayShoppinglist(sl_id);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
@ -286,7 +292,7 @@ async function deleteGroup(group_id, sl_id) {
console.error(error); console.error(error);
} }
push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde gelöscht!", "Die Gruppe " + name + " wurde gelöscht!"); // push.sendMultiplePush(await getmessageids(sl_id), "Gruppe wurde gelöscht!", "Die Gruppe " + name + " wurde gelöscht!");
return displayShoppinglist(sl_id); return displayShoppinglist(sl_id);
} }
@ -299,7 +305,7 @@ async function deleteItem(item_id, group_id, sl_id) {
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
push.sendMultiplePush(await getmessageids(sl_id), "Item wurde gelöscht!", "Das Item " + name + " wurde gelöscht!"); //push.sendMultiplePush(await getmessageids(sl_id), "Item wurde gelöscht!", "Das Item " + name + " wurde gelöscht!");
return displayShoppinglist(sl_id); return displayShoppinglist(sl_id);
} }
@ -347,8 +353,8 @@ async function moveDoneItems(uid, sl_id, billcontent) {
async function moveDoneItemMan(uid, sl_id, group_id, item_id) { async function moveDoneItemMan(uid, sl_id, group_id, item_id) {
try { try {
let name = await query('SELECT row_to_json("Item") as obj FROM "Item" WHERE item_id = $3 AND group_id = $2 AND sl_id = $1', [sl_id, group_id, item_id]); let item = await query('SELECT row_to_json("Item") as obj FROM "Item" WHERE item_id = $3 AND group_id = $2 AND sl_id = $1', [sl_id, group_id, item_id]);
console.log(name);
var today = new Date(); var today = new Date();
var dd = today.getDate(); var dd = today.getDate();
var mm = today.getMonth() + 1; var mm = today.getMonth() + 1;
@ -365,9 +371,14 @@ async function moveDoneItemMan(uid, sl_id, group_id, item_id) {
today = mm + '/' + dd + '/' + yyyy; today = mm + '/' + dd + '/' + yyyy;
await nonQuery('INSERT INTO "Done_Purchase" (purchased_item_id, username, name, date, count) VALUES($1,$2,$3,$4,$5);', await nonQuery('INSERT INTO "Done_Purchase" (purchased_item_id, username, name, date, count) VALUES($1,$2,$3,$4,$5);',
[generate_item_id(), uid, name, today, 1]); [generate_item_id(), uid, item[0].name, today, item[0].count]);
await nonQuery('DELETE FROM "Item" WHERE item_id = $1 AND group_id = $2 AND sl_id = $3;', [item_id, group_id, sl_id]); await nonQuery('DELETE FROM "Item" WHERE item_id = $1 AND group_id = $2 AND sl_id = $3;', [item_id, group_id, sl_id]);
return await {
shoppinglist: await displayShoppinglist(sl_id),
doneitems: await getDonePurchases(uid)
}
} }
catch(error) { catch(error) {
@ -388,7 +399,23 @@ async function getDonePurchases(uid) {
} }
} }
async function getUserDB(uid) {
try {
let user = await query('SELECT row_to_json("User") AS obj FROM "User" WHERE username = $1;', [uid]);
return user;
} catch (error) {
console.error("Error", error);
}
}
async function deleteDonePurchase(pid, uid) {
try {
await nonQuery('DELETE FROM "Done_Purchase" WHERE purchased_item_id = $1 ', [pid]);
return getDonePurchases(uid);
} catch (error) {
console.error("Error", error);
}
}
@ -433,7 +460,7 @@ async function removeMember(uid, sl_id) {
try { try {
await nonQuery('DELETE FROM "Shoppinglist_member" WHERE username = $1 AND sl_id = $2', [uid, sl_id]); await nonQuery('DELETE FROM "Shoppinglist_member" WHERE username = $1 AND sl_id = $2', [uid, sl_id]);
return getShoppinglistsShared(sl_id); return await displayShoppinglist(sl_id);
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} }
@ -480,18 +507,22 @@ function generate_item_id() {
return output; return output;
} }
function items_in_groups(groups, items, sl_id, admin_uid, admin_mid, members, name, description, invitelink) { function items_in_groups(groups, items, sl_id, sl_admin, sl_members, name, description, invitelink, color) {
let result = { let result = {
sl_id: sl_id, sl_id: sl_id,
name: name, name: name,
description: description, description: description,
invitelink: invitelink, invitelink: invitelink,
color: color,
admin: { admin: {
uid: admin_uid, username: sl_admin[0].username,
mid: admin_mid email: sl_admin[0].email,
name: sl_admin[0].name,
picture: sl_admin[0].picture,
message_id: sl_admin[0].message_id
}, },
members: [], members: sl_members,
groups: [] groups: []
}; };
@ -507,14 +538,6 @@ function items_in_groups(groups, items, sl_id, admin_uid, admin_mid, members, na
}); });
} }
for (let item of members) {
result.members.push({
uid: item.username,
mid: item.message_id
});
}
return result; return result;
} }
@ -619,5 +642,7 @@ module.exports = {
searchUsers, searchUsers,
removeMember, removeMember,
moveDoneItemMan, moveDoneItemMan,
getUser getUser,
getUserDB,
deleteDonePurchase
} }

View File

@ -193,8 +193,6 @@ router.get("/shoppinglist_json/:sl_id", async (req, res) => {
postgres.displayShoppinglist("4tezJYMK");
//DELETE Shoppinglist //DELETE Shoppinglist
router.delete("/shoppinglist", async (req, res) => { router.delete("/shoppinglist", async (req, res) => {
@ -272,10 +270,25 @@ router.get("/userinfo_json", (req, res) => {
//Rename Shoppinglist //Rename Shoppinglist
router.put("/shoppinglist", async (req, res) => { router.put("/shoppinglist", async (req, res) => {
try { try {
res.status(200).send(await postgres.editShoppinglist(req.body.sl_id, req.body.name, req.body.description, req.body.color));
} catch (err) { } catch (err) {
res.status(400).send(await err); res.status(400).send(await err);
} }
var token = req.body.idtoken;
var uid;
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
try {
res.status(200).send(await postgres.editShoppinglist(req.body.sl_id, req.body.name, req.body.description, req.body.color, uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
}); });
//Rename Group //Rename Group
@ -332,9 +345,9 @@ router.post("/maninvite", async (req, res) => {
}); });
router.delete("/member", (req, res) => { router.delete("/member", async (req, res) => {
try { try {
postgres.removeMember(req.body.uid, req.body.sl_id) res.status(200).send(await postgres.removeMember(req.body.uid, req.body.sl_id));
} catch (err) { } catch (err) {
return err; return err;
} }
@ -489,6 +502,46 @@ router.get("/dash2", (req, res) => {
res.status(200).render("dash2"); res.status(200).render("dash2");
}); });
router.get("/dbuser", async function (req, res, next) {
var token = req.query.idtoken;
console.log("/myshoppinglists idtoken: ", token)
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
console.log("uid", uid)
try {
//Get user id: req.session.passport.user.profile.id
res.status(200).send(await postgres.getUserDB(uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
router.delete("/donepurchase", async (req, res) => {
var token = req.body.idtoken;
console.log("/myshoppinglists idtoken: ", token)
firebaseAdmin.auth().verifyIdToken(token)
.then(async function (decodedToken) {
uid = decodedToken.uid;
console.log("uid", uid)
try {
//Get user id: req.session.passport.user.profile.id
res.status(200).send(await postgres.deleteDonePurchase(req.body.pid, uid));
} catch (err) {
res.status(400).send(await err);
}
}).catch(function (error) {
console.log(error)
});
});
module.exports = router; module.exports = router;