From 84f2d87cd2c65f1422833743110cd0dc3d5d7747 Mon Sep 17 00:00:00 2001
From: Divya Lakshmi <166861248+divyalakshmi0@users.noreply.github.com>
Date: Sat, 26 Oct 2024 20:34:18 +0530
Subject: [PATCH 1/4] Create delete-post.ejs
---
views/admin/delete-post.ejs | 59 +++++++++++++++++++++++++++++++++++++
1 file changed, 59 insertions(+)
create mode 100644 views/admin/delete-post.ejs
diff --git a/views/admin/delete-post.ejs b/views/admin/delete-post.ejs
new file mode 100644
index 0000000..7ac964c
--- /dev/null
+++ b/views/admin/delete-post.ejs
@@ -0,0 +1,59 @@
+
+
+
+
+
+ Delete Post
+
+
+
+
+
+
Are you sure you want to delete this post?
+
This action cannot be undone.
+
+
+
+
+
From 31a153495aae1d000883613655f8de9bc4b85c6e Mon Sep 17 00:00:00 2001
From: Divya Lakshmi <166861248+divyalakshmi0@users.noreply.github.com>
Date: Sun, 27 Oct 2024 21:47:28 +0530
Subject: [PATCH 2/4] Update Post.js
added likes, likedby schema
---
server/models/Post.js | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
diff --git a/server/models/Post.js b/server/models/Post.js
index 8605a88..3eecc24 100644
--- a/server/models/Post.js
+++ b/server/models/Post.js
@@ -17,7 +17,15 @@ const PostSchema = new Schema({
updatedAt: {
type: Date,
default: Date.now
- }
+ },
+ likes: { // Counter for the number of likes
+ type: Number,
+ default: 0
+ },
+ likedBy: [{ // Array of user IDs who liked the post, to prevent duplicate likes
+ type: mongoose.Schema.Types.ObjectId,
+ ref: 'User'
+ }]
});
-module.exports = mongoose.model('Post', PostSchema);
\ No newline at end of file
+module.exports = mongoose.model('Post', PostSchema);
From b9519c34e2845a902c3b5c5e54ff53fd380b447e Mon Sep 17 00:00:00 2001
From: Divya Lakshmi <166861248+divyalakshmi0@users.noreply.github.com>
Date: Sun, 27 Oct 2024 21:49:10 +0530
Subject: [PATCH 3/4] Update admin.js
---
server/routes/admin.js | 14 ++++++++++++++
1 file changed, 14 insertions(+)
diff --git a/server/routes/admin.js b/server/routes/admin.js
index eeccf33..1fe576e 100644
--- a/server/routes/admin.js
+++ b/server/routes/admin.js
@@ -191,6 +191,20 @@ router.delete('/delete-post/:id', authMiddleware, async (req, res) => {
}
});
+// POST: Add a like to a post
+app.post('/posts/:id/like', async (req, res) => {
+ const postId = req.params.id;
+ const userId = req.user.id; // Assume user is authenticated
+
+ const post = await Post.findById(postId);
+ if (!post.likedBy.includes(userId)) {
+ post.likes += 1;
+ post.likedBy.push(userId);
+ await post.save();
+ }
+ res.status(200).json(post);
+});
+
/**
* POST /register
* Admin Registration Route
From 00c8f6297900619eb4d47576b8746691965737d6 Mon Sep 17 00:00:00 2001
From: Divya Lakshmi <166861248+divyalakshmi0@users.noreply.github.com>
Date: Sun, 27 Oct 2024 21:50:31 +0530
Subject: [PATCH 4/4] Update main.js
---
server/routes/main.js | 12 ++++++++++++
1 file changed, 12 insertions(+)
diff --git a/server/routes/main.js b/server/routes/main.js
index bc0cea3..cb7c8a2 100644
--- a/server/routes/main.js
+++ b/server/routes/main.js
@@ -184,6 +184,18 @@ router.post('/send-message', async (req, res) => {
}
});
+const handleLike = async () => {
+ if (!liked) {
+ await axios.post(`/posts/${postId}/like`);
+ } else {
+ await axios.delete(`/posts/${postId}/like`);
+ }
+ setLiked(!liked); // Update UI state
+ fetchPostData(); // Re-fetch or update post data
+};
+{post.likes} Reactions
+
+
// function insertPostData() {
// Post.insertMany([
// {