Add CallLinkDeleteManager to retry and ensure deletion

This commit is contained in:
ayumi-signal
2024-09-16 12:22:01 -07:00
committed by GitHub
parent 8b627b3f1a
commit a40d54099c
8 changed files with 229 additions and 89 deletions

View File

@@ -66,8 +66,8 @@ import type { ConversationType } from '../state/ducks/conversations';
import type { ConversationModel } from '../models/conversations';
import { drop } from './drop';
import { sendCallLinkUpdateSync } from './sendCallLinkUpdateSync';
import { callLinksDeleteJobQueue } from '../jobs/callLinksDeleteJobQueue';
import { storageServiceUploadJob } from '../services/storage';
import { CallLinkDeleteManager } from '../jobs/CallLinkDeleteManager';
// utils
// -----
@@ -1305,14 +1305,13 @@ export async function clearCallHistoryDataAndSync(
const messageIds = await DataWriter.clearCallHistory(latestCall);
await DataWriter.beginDeleteAllCallLinks();
storageServiceUploadJob();
// Wait for storage sync before finalizing delete
drop(CallLinkDeleteManager.enqueueAllDeletedCallLinks({ delay: 10000 }));
updateDeletedMessages(messageIds);
log.info('clearCallHistory: Queueing sync message');
await singleProtoJobQueue.add(
MessageSender.getClearCallHistoryMessage(latestCall)
);
await callLinksDeleteJobQueue.add({
source: 'clearCallHistoryDataAndSync',
});
} catch (error) {
log.error('clearCallHistory: Failed to clear call history', error);
}