@@ -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
262272router . 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