Fehler beoben
This commit is contained in:
		@@ -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
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
@@ -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;
 | 
				
			||||||
		Reference in New Issue
	
	Block a user