Merge pull request #23673 from overleaf/em-reviewer-role-delete-replies

Let reviewers delete their own comments

GitOrigin-RevId: bd5341a917a3e886dc573d7e42d12343da6700cd
This commit is contained in:
Eric Mc Sween
2025-02-19 09:05:21 +00:00
committed by Copybot
parent a34ebd3c7e
commit 79bb2e3d40
6 changed files with 82 additions and 2 deletions
@@ -74,6 +74,10 @@ export async function deleteMessage(context) {
return await callMessageHttpController(context, _deleteMessage)
}
export async function deleteUserMessage(context) {
return await callMessageHttpController(context, _deleteUserMessage)
}
export async function getResolvedThreadIds(context) {
return await callMessageHttpController(context, _getResolvedThreadIds)
}
@@ -190,6 +194,13 @@ const _deleteMessage = async (req, res) => {
res.status(204)
}
const _deleteUserMessage = async (req, res) => {
const { projectId, threadId, userId, messageId } = req.params
const room = await ThreadManager.findOrCreateThread(projectId, threadId)
await MessageManager.deleteUserMessage(userId, room._id, messageId)
res.status(204)
}
const _getResolvedThreadIds = async (req, res) => {
const { projectId } = req.params
const resolvedThreadIds = await ThreadManager.getResolvedThreadIds(projectId)
@@ -77,6 +77,14 @@ export async function deleteMessage(roomId, messageId) {
await db.messages.deleteOne(query)
}
export async function deleteUserMessage(userId, roomId, messageId) {
await db.messages.deleteOne({
_id: new ObjectId(messageId),
user_id: new ObjectId(userId),
room_id: new ObjectId(roomId),
})
}
function _ensureIdsAreObjectIds(query) {
if (query.user_id && !(query.user_id instanceof ObjectId)) {
query.user_id = new ObjectId(query.user_id)