diff --git a/back/api/messages.js b/back/api/messages.js index 9ef2db5..d692a67 100644 --- a/back/api/messages.js +++ b/back/api/messages.js @@ -126,11 +126,19 @@ router.post('/:message_id/delete', checkAuth, async (req, res) => { } const channel = await getChannel(connection, message[0].channel_name); + if (user.id !== channel[0].owner_id && user.id !== message[0].user_id && user.admin !== 1) { connection.end(); return res.status(401).send({ error: 'Unauthorized' }); } + if (message[0].reply_to_id) { + const replies = await getMessageReplies(connection, message[0].reply_to_id); + if (replies.length === 1) { + await setHasReplies(connection, replyToId, false); + } + } + await deleteMessage(connection, message_id); connection.end(); diff --git a/front/src/pages/ChannelPage.tsx b/front/src/pages/ChannelPage.tsx index 504ce09..2324e4a 100644 --- a/front/src/pages/ChannelPage.tsx +++ b/front/src/pages/ChannelPage.tsx @@ -97,7 +97,7 @@ export default function ChannelPage({socket}: {socket: WebSocket}) { const data = JSON.parse(event.data); if ((data.type === "new_message" || data.type === "delete_message" || data.type === "purge_channel") && data.channel_id === channel?.id) { axios - .get(`/api/channels/${name}/messages?limit=${maxMessageToShown}`).then((res) => { + .get(`/api/channels/${name}/messages`).then((res) => { setMessages(res.data) }) }