Skip to content

Commit a2dc1be

Browse files
fix delete chat history
1 parent 82fb6f8 commit a2dc1be

1 file changed

Lines changed: 26 additions & 20 deletions

File tree

backend/routes/chat.js

Lines changed: 26 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -258,6 +258,16 @@ async function saveConversationState(convId, userId, state) {
258258
});
259259
}
260260

261+
async function runDb(sql, params = []) {
262+
if (!global.db) return;
263+
await new Promise((resolve, reject) => {
264+
global.db.run(sql, params, (err) => {
265+
if (err) return reject(err);
266+
resolve();
267+
});
268+
});
269+
}
270+
261271

262272
router.post('/message', requireAuth, async (req, res) => {
263273
try {
@@ -696,17 +706,10 @@ router.delete('/history/:userId', requireAuth, async (req, res) => {
696706
const delState = 'DELETE FROM conversation_state WHERE user_id = ?';
697707
const delConversations = 'DELETE FROM conversations WHERE user_id = ?';
698708
try {
699-
await new Promise((resolve, reject) => {
700-
global.db.serialize(() => {
701-
global.db.run(delMessages, [userId]);
702-
global.db.run(delRecs, [userId]);
703-
global.db.run(delState, [userId]);
704-
global.db.run(delConversations, [userId], (err) => {
705-
if (err) return reject(err);
706-
resolve();
707-
});
708-
});
709-
});
709+
await runDb(delMessages, [userId]);
710+
await runDb(delRecs, [userId]);
711+
await runDb(delState, [userId]);
712+
await runDb(delConversations, [userId]);
710713

711714
try {
712715
await deleteMirroredUserHistory({ appUserId: Number(userId) || userId });
@@ -777,12 +780,13 @@ router.delete('/conversation/:conversationId', requireAuth, (req, res) => {
777780
const deleteRecs = 'DELETE FROM recommendations WHERE conversation_id = ?';
778781
const deleteState = 'DELETE FROM conversation_state WHERE conversation_id = ?';
779782
const deleteConv = 'DELETE FROM conversations WHERE id = ?';
780-
global.db.serialize(() => {
781-
global.db.run(deleteMessages, [conversationId]);
782-
global.db.run(deleteRecs, [conversationId]);
783-
global.db.run(deleteState, [conversationId]);
784-
global.db.run(deleteConv, [conversationId], async function (err2) {
785-
if (err2) return res.status(500).json({ success: false, error: err2.message });
783+
784+
(async () => {
785+
try {
786+
await runDb(deleteMessages, [conversationId]);
787+
await runDb(deleteRecs, [conversationId]);
788+
await runDb(deleteState, [conversationId]);
789+
await runDb(deleteConv, [conversationId]);
786790

787791
try {
788792
await deleteMirroredConversationData({
@@ -793,9 +797,11 @@ router.delete('/conversation/:conversationId', requireAuth, (req, res) => {
793797
console.warn('[CHAT DEBUG] deleteMirroredConversationData warning:', mirrorError.message);
794798
}
795799

796-
res.json({ success: true, data: { deleted: true } });
797-
});
798-
});
800+
return res.json({ success: true, data: { deleted: true } });
801+
} catch (err2) {
802+
return res.status(500).json({ success: false, error: err2.message });
803+
}
804+
})();
799805
});
800806
});
801807

0 commit comments

Comments
 (0)