Support for single-attachment delete synced across devices
Co-authored-by: Scott Nonnenberg <scott@signal.org>
This commit is contained in:
parent
7fd5dd3761
commit
795d47e332
26 changed files with 422 additions and 55 deletions
|
@ -11,6 +11,7 @@ import {
|
|||
deleteMessageSchema,
|
||||
deleteConversationSchema,
|
||||
deleteLocalConversationSchema,
|
||||
deleteAttachmentSchema,
|
||||
} from '../textsecure/messageReceiverEvents';
|
||||
import {
|
||||
receiptSyncTaskSchema,
|
||||
|
@ -34,6 +35,7 @@ const syncTaskDataSchema = z.union([
|
|||
deleteMessageSchema,
|
||||
deleteConversationSchema,
|
||||
deleteLocalConversationSchema,
|
||||
deleteAttachmentSchema,
|
||||
receiptSyncTaskSchema,
|
||||
readSyncTaskSchema,
|
||||
viewSyncTaskSchema,
|
||||
|
@ -54,6 +56,7 @@ const SCHEMAS_BY_TYPE: Record<SyncTaskData['type'], ZodSchema> = {
|
|||
'delete-message': deleteMessageSchema,
|
||||
'delete-conversation': deleteConversationSchema,
|
||||
'delete-local-conversation': deleteLocalConversationSchema,
|
||||
'delete-single-attachment': deleteAttachmentSchema,
|
||||
Delivery: receiptSyncTaskSchema,
|
||||
Read: receiptSyncTaskSchema,
|
||||
View: receiptSyncTaskSchema,
|
||||
|
@ -153,6 +156,21 @@ export async function queueSyncTasks(
|
|||
log.info(`${logId}: Done; result=${result}`);
|
||||
})
|
||||
);
|
||||
} else if (parsed.type === 'delete-single-attachment') {
|
||||
drop(
|
||||
DeletesForMe.onDelete({
|
||||
conversation: parsed.conversation,
|
||||
deleteAttachmentData: {
|
||||
clientUuid: parsed.clientUuid,
|
||||
fallbackDigest: parsed.fallbackDigest,
|
||||
fallbackPlaintextHash: parsed.fallbackPlaintextHash,
|
||||
},
|
||||
envelopeId,
|
||||
message: parsed.message,
|
||||
syncTaskId: id,
|
||||
timestamp: sentAt,
|
||||
})
|
||||
);
|
||||
} else if (
|
||||
parsed.type === 'Delivery' ||
|
||||
parsed.type === 'Read' ||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue