From 6a38e09f4f1db77e53c9575059bb961d2fdd99cc Mon Sep 17 00:00:00 2001 From: William Grant Date: Mon, 3 Apr 2023 14:09:06 +0200 Subject: [PATCH] feat: moved setToExpire calls to the correct locations within the message pipeline depending on the expirationType of a message model --- ts/models/conversation.ts | 2 -- ts/receiver/contentMessage.ts | 6 +++++- ts/receiver/queuedJob.ts | 1 + ts/session/group/closed-group.ts | 8 ++++++++ ts/session/sending/MessageSentHandler.ts | 1 + 5 files changed, 15 insertions(+), 3 deletions(-) diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts index 2fb3ca525..1b9249e67 100644 --- a/ts/models/conversation.ts +++ b/ts/models/conversation.ts @@ -2010,8 +2010,6 @@ export class ConversationModel extends Backbone.Model { const messageId = await model.commit(false); model.set({ id: messageId }); - await model.setToExpire(); - const messageModelProps = model.getMessageModelProps(); window.inboxStore?.dispatch(conversationActions.messagesChanged([messageModelProps])); const unreadCount = await this.getUnreadCount(); diff --git a/ts/receiver/contentMessage.ts b/ts/receiver/contentMessage.ts index 730f353a4..4e3ea70bc 100644 --- a/ts/receiver/contentMessage.ts +++ b/ts/receiver/contentMessage.ts @@ -781,7 +781,7 @@ export async function handleDataExtractionNotification( // TODO legacy messages support will be removed in a future release const isLegacyMode = convo && convo.isPrivate() && expirationType === 'legacy'; - await convo.addSingleIncomingMessage({ + const msgModel = await convo.addSingleIncomingMessage({ source, sent_at: envelopeTimestamp, dataExtractionNotification: { @@ -798,6 +798,10 @@ export async function handleDataExtractionNotification( ? setExpirationStartTimestamp('deleteAfterSend', undefined, isLegacyMode) : undefined, }); + + if (isLegacyMode || expirationType === 'deleteAfterSend') { + await msgModel.setToExpire(); + } convo.updateLastMessage(); } } diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index 184f2a06e..4db44ccea 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -350,6 +350,7 @@ export async function handleMessageJob( messageModel.get('expirationType') === 'legacy' ), }); + messageModel.setToExpire(); } if (messageModel.isExpirationTimerUpdate()) { diff --git a/ts/session/group/closed-group.ts b/ts/session/group/closed-group.ts index f68244aec..1771d1bba 100644 --- a/ts/session/group/closed-group.ts +++ b/ts/session/group/closed-group.ts @@ -188,6 +188,10 @@ export async function addUpdateMessage( if (UserUtils.isUsFromCache(sender)) { const outgoingMessage = await convo.addSingleOutgoingMessage(msgModel); + // NOTE will always be delete after send + if (expirationType) { + outgoingMessage.setToExpire(); + } return outgoingMessage; } @@ -203,6 +207,10 @@ export async function addUpdateMessage( }); await convo.commit(); + + if (expirationType) { + incomingMessage.setToExpire(); + } return incomingMessage; } diff --git a/ts/session/sending/MessageSentHandler.ts b/ts/session/sending/MessageSentHandler.ts index 441cf7191..bbeffb7a4 100644 --- a/ts/session/sending/MessageSentHandler.ts +++ b/ts/session/sending/MessageSentHandler.ts @@ -151,6 +151,7 @@ async function handleMessageSentSuccess( isLegacySentMode ), }); + fetchedMessage.setToExpire(); } }