diff --git a/dbTools/post.js b/dbTools/post.js index a55dcb9..aec2df6 100644 --- a/dbTools/post.js +++ b/dbTools/post.js @@ -19,6 +19,23 @@ postDB = (DB)=>{ }); } + DB.updatePost = (postid, newContent, oldContent) => { + const id = DB.ObjectID(postid); + let update = { + $set:{ + content: newContent, + // lastUpdated: new Date() // add back when finish updating videos. + }, + $push: { + contentHistory: oldContent + } + } + return DB.postCols.updateOne({_id: id}, update).catch((err)=>{ + console.log(err); + return false; + }); + } + DB.newReaction = (postid, profileid, reaction) => { const id = DB.ObjectID(postid); let update = { diff --git a/routes/post.js b/routes/post.js index 5ea6e5e..3814662 100644 --- a/routes/post.js +++ b/routes/post.js @@ -240,6 +240,21 @@ DB.getDB.then((DB) => { }); }); + router.post("/:id", async (req, res) => { + const profileid = getProfileId(req) + ''; + const postId = req.params.id; + const post = await DB.getPost(postId); + const newContent = req.body.content; + if (!postBelongToProfile(post, profileid)) + return res.json({ + status: "This post is not yours." + }); + await DB.updatePost(postId, newContent, post.content); + return res.json({ + status: "ok" + }); + }); + }); module.exports = router \ No newline at end of file