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
async function editShoppinglist(sl_id, newname, newdescription, newcolor) {
async function editShoppinglist(sl_id, newname, newdescription, newcolor, uid) {
try {
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) {
await nonQuery('UPDATE "Shoppinglist" SET color = $1 WHERE sl_id = $2;', [newcolor, sl_id]);
}
return getShoppinglistsAdmin(uid);
} catch (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 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) {
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]);
}
return displayShoppinglist(sl_id);
} catch (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) {
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) {
console.error(error);
}
@ -286,7 +292,7 @@ async function deleteGroup(group_id, sl_id) {
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);
}
@ -299,7 +305,7 @@ async function deleteItem(item_id, group_id, sl_id) {
} catch (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);
}
@ -347,8 +353,8 @@ async function moveDoneItems(uid, sl_id, billcontent) {
async function moveDoneItemMan(uid, sl_id, group_id, item_id) {
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]);
console.log(name);
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]);
var today = new Date();
var dd = today.getDate();
var mm = today.getMonth() + 1;
@ -365,9 +371,14 @@ async function moveDoneItemMan(uid, sl_id, group_id, item_id) {
today = mm + '/' + dd + '/' + yyyy;
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]);
return await {
shoppinglist: await displayShoppinglist(sl_id),
doneitems: await getDonePurchases(uid)
}
}
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 {
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) {
console.error(error);
}
@ -480,18 +507,22 @@ function generate_item_id() {
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 = {
sl_id: sl_id,
name: name,
description: description,
invitelink: invitelink,
color: color,
admin: {
uid: admin_uid,
mid: admin_mid
username: sl_admin[0].username,
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: []
};
@ -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;
}
@ -619,5 +642,7 @@ module.exports = {
searchUsers,
removeMember,
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
router.delete("/shoppinglist", async (req, res) => {
@ -272,10 +270,25 @@ router.get("/userinfo_json", (req, res) => {
//Rename Shoppinglist
router.put("/shoppinglist", async (req, res) => {
try {
res.status(200).send(await postgres.editShoppinglist(req.body.sl_id, req.body.name, req.body.description, req.body.color));
} catch (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
@ -332,9 +345,9 @@ router.post("/maninvite", async (req, res) => {
});
router.delete("/member", (req, res) => {
router.delete("/member", async (req, res) => {
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) {
return err;
}
@ -489,6 +502,46 @@ router.get("/dash2", (req, res) => {
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;