added option to delete message

This commit is contained in:
slawk0
2024-12-01 19:41:02 +01:00
parent 6dc77982df
commit 47f145216d
9 changed files with 120 additions and 26 deletions

View File

@@ -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,
};

View File

@@ -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, () => {