Backup: Support for calls

This commit is contained in:
Scott Nonnenberg 2024-08-14 04:39:04 +10:00 committed by GitHub
parent 3a631a587f
commit 63e14a7df6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 1047 additions and 116 deletions

View file

@ -779,6 +779,7 @@ type WritableInterface = {
_removeAllMessages: () => void;
clearCallHistory: (target: CallLogEventTarget) => ReadonlyArray<string>;
_removeAllCallHistory: () => void;
markCallHistoryDeleted: (callId: string) => void;
cleanupCallHistoryMessages: () => void;
markCallHistoryRead(callId: string): void;
@ -796,6 +797,7 @@ type WritableInterface = {
beginDeleteAllCallLinks(): void;
beginDeleteCallLink(roomId: string): void;
finalizeDeleteCallLink(roomId: string): void;
_removeAllCallLinks(): void;
deleteCallLinkFromSync(roomId: string): void;
migrateConversationMessages: (obsoleteId: string, currentId: string) => void;
saveEditedMessage: (

View file

@ -182,6 +182,7 @@ import {
finalizeDeleteCallLink,
beginDeleteCallLink,
deleteCallLinkFromSync,
_removeAllCallLinks,
} from './server/callLinks';
import {
replaceAllEndorsementsForGroup,
@ -425,6 +426,7 @@ export const DataWriter: ServerWritableInterface = {
_removeAllMessages,
getUnreadEditedMessagesAndMarkRead,
clearCallHistory,
_removeAllCallHistory,
markCallHistoryDeleted,
cleanupCallHistoryMessages,
markCallHistoryRead,
@ -438,6 +440,7 @@ export const DataWriter: ServerWritableInterface = {
beginDeleteAllCallLinks,
beginDeleteCallLink,
finalizeDeleteCallLink,
_removeAllCallLinks,
deleteCallLinkFromSync,
migrateConversationMessages,
saveEditedMessage,
@ -3472,6 +3475,13 @@ function getAllCallHistory(db: ReadableDB): ReadonlyArray<CallHistoryDetails> {
return db.prepare(query).all();
}
function _removeAllCallHistory(db: WritableDB): void {
const [query, params] = sql`
DELETE FROM callsHistory;
`;
db.prepare(query).run(params);
}
function clearCallHistory(
db: WritableDB,
target: CallLogEventTarget

View file

@ -237,3 +237,10 @@ export function finalizeDeleteCallLink(db: WritableDB, roomId: string): void {
`;
db.prepare(query).run(params);
}
export function _removeAllCallLinks(db: WritableDB): void {
const [query, params] = sql`
DELETE FROM callLinks;
`;
db.prepare(query).run(params);
}