added option to delete message
This commit is contained in:
@@ -684,6 +684,43 @@ async function contactSuggestion(username) {
|
||||
return [];
|
||||
}
|
||||
}
|
||||
|
||||
async function deleteMessage(user_id, message_id) {
|
||||
const checkMessageOwnershipQuery = `
|
||||
SELECT user_id FROM Messages WHERE message_id = $1;
|
||||
`;
|
||||
|
||||
const deleteMessageQuery = `
|
||||
DELETE FROM Messages WHERE message_id = $1;
|
||||
`;
|
||||
|
||||
try {
|
||||
const checkResult = await client.query(checkMessageOwnershipQuery, [
|
||||
message_id,
|
||||
]);
|
||||
if (checkResult.rows.length === 0) {
|
||||
return { message: "Message not found." };
|
||||
}
|
||||
|
||||
const messageOwnerId = checkResult.rows[0].user_id;
|
||||
if (user_id !== messageOwnerId) {
|
||||
console.error("User is not authorized to delete this message");
|
||||
return { message: "It's not your message bro" };
|
||||
}
|
||||
const deleteResult = await client.query(deleteMessageQuery, [message_id]);
|
||||
if (deleteResult.rowCount > 0) {
|
||||
console.log("Message deleted successfully");
|
||||
return { message: "Message deleted successfully" };
|
||||
} else {
|
||||
console.log("Failed to delete message");
|
||||
return { message: "Failed to delete message." };
|
||||
}
|
||||
} catch (e) {
|
||||
console.error("Failed to delete message ", e);
|
||||
return { message: "Failed to delete message" };
|
||||
}
|
||||
}
|
||||
|
||||
function getTime() {
|
||||
return new Date();
|
||||
}
|
||||
@@ -707,4 +744,5 @@ module.exports = {
|
||||
addMemberToGroupByUsername,
|
||||
getConversationsForUser,
|
||||
contactSuggestion,
|
||||
deleteMessage,
|
||||
};
|
||||
|
||||
@@ -43,6 +43,7 @@ const {
|
||||
addMemberToGroup,
|
||||
addMemberToGroupByUsername,
|
||||
contactSuggestion,
|
||||
deleteMessage,
|
||||
} = require("./db/db");
|
||||
const { extname } = require("node:path");
|
||||
|
||||
@@ -348,7 +349,7 @@ app.post("/api/chat/groups/create", authorizeUser, async (req, res) => {
|
||||
});
|
||||
});
|
||||
|
||||
app.post("/api/chat/groups/add", async (req, res) => {
|
||||
app.post("/api/chat/groups/addMember", async (req, res) => {
|
||||
const username = req.body.username;
|
||||
const group_id = req.body.group_id;
|
||||
if (!username) {
|
||||
@@ -364,6 +365,25 @@ app.post("/api/chat/groups/add", async (req, res) => {
|
||||
res.status(500).json({ message: "Failed to add member" });
|
||||
});
|
||||
|
||||
app.delete(
|
||||
"/api/chat/messages/:message_id",
|
||||
authorizeUser,
|
||||
async (req, res) => {
|
||||
const message_id = req.params.message_id;
|
||||
console.log("delete message: ", req.user.user_id, message_id);
|
||||
if (!message_id) {
|
||||
return res.status(500).json({ message: "No message_id provided" });
|
||||
}
|
||||
|
||||
const result = await deleteMessage(req.user.user_id, message_id);
|
||||
if (result.message) {
|
||||
return res.status(200).json({ message: result.message });
|
||||
} else {
|
||||
return res.status(200).json({ message: "Successfully deleted message" });
|
||||
}
|
||||
},
|
||||
);
|
||||
|
||||
initializeSocket(io);
|
||||
|
||||
server.listen(PORT, () => {
|
||||
|
||||
Reference in New Issue
Block a user