Dateien nach "backend/src/tools/nachrichten" hochladen
This commit is contained in:
@@ -104,7 +104,7 @@ router.post('/messages/:userId', authenticate, async (req, res) => {
|
|||||||
res.json({ id: result.lastInsertRowid });
|
res.json({ id: result.lastInsertRowid });
|
||||||
});
|
});
|
||||||
|
|
||||||
// DELETE single message (own side only)
|
// DELETE single message – sofort physisch löschen
|
||||||
router.delete('/messages/:messageId', authenticate, (req, res) => {
|
router.delete('/messages/:messageId', authenticate, (req, res) => {
|
||||||
const me = req.user.id;
|
const me = req.user.id;
|
||||||
const mid = parseInt(req.params.messageId);
|
const mid = parseInt(req.params.messageId);
|
||||||
@@ -112,29 +112,17 @@ router.delete('/messages/:messageId', authenticate, (req, res) => {
|
|||||||
if (!msg) return res.status(404).json({ error: 'Nicht gefunden' });
|
if (!msg) return res.status(404).json({ error: 'Nicht gefunden' });
|
||||||
if (msg.sender_id !== me && msg.recipient_id !== me)
|
if (msg.sender_id !== me && msg.recipient_id !== me)
|
||||||
return res.status(403).json({ error: 'Kein Zugriff' });
|
return res.status(403).json({ error: 'Kein Zugriff' });
|
||||||
|
db.prepare('DELETE FROM messages WHERE id = ?').run(mid);
|
||||||
if (msg.sender_id === me) {
|
|
||||||
db.prepare('UPDATE messages SET deleted_by_sender = 1 WHERE id = ?').run(mid);
|
|
||||||
} else {
|
|
||||||
db.prepare('UPDATE messages SET deleted_by_recipient = 1 WHERE id = ?').run(mid);
|
|
||||||
}
|
|
||||||
// Physical delete when both sides have deleted
|
|
||||||
db.prepare('DELETE FROM messages WHERE id = ? AND deleted_by_sender = 1 AND deleted_by_recipient = 1').run(mid);
|
|
||||||
res.json({ ok: true });
|
res.json({ ok: true });
|
||||||
});
|
});
|
||||||
|
|
||||||
// DELETE entire conversation (own side)
|
// DELETE entire conversation – sofort physisch löschen
|
||||||
router.delete('/conversation/:userId', authenticate, (req, res) => {
|
router.delete('/conversation/:userId', authenticate, (req, res) => {
|
||||||
const me = req.user.id;
|
const me = req.user.id;
|
||||||
const other = parseInt(req.params.userId);
|
const other = parseInt(req.params.userId);
|
||||||
|
|
||||||
db.prepare('UPDATE messages SET deleted_by_sender = 1 WHERE sender_id = ? AND recipient_id = ?').run(me, other);
|
|
||||||
db.prepare('UPDATE messages SET deleted_by_recipient = 1 WHERE recipient_id = ? AND sender_id = ?').run(me, other);
|
|
||||||
// Physical cleanup where both deleted
|
|
||||||
db.prepare(`
|
db.prepare(`
|
||||||
DELETE FROM messages
|
DELETE FROM messages
|
||||||
WHERE deleted_by_sender = 1 AND deleted_by_recipient = 1
|
WHERE (sender_id = ? AND recipient_id = ?) OR (sender_id = ? AND recipient_id = ?)
|
||||||
AND ((sender_id = ? AND recipient_id = ?) OR (sender_id = ? AND recipient_id = ?))
|
|
||||||
`).run(me, other, other, me);
|
`).run(me, other, other, me);
|
||||||
res.json({ ok: true });
|
res.json({ ok: true });
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user