From ebaedb2e4cd8056e7a89ec3165de825da011af9f Mon Sep 17 00:00:00 2001 From: William Grant Date: Mon, 2 Oct 2023 14:39:18 +1100 Subject: [PATCH] feat: created getters in message model replaced all expirationType calls with getExpirationType --- ts/models/conversation.ts | 2 +- ts/models/message.ts | 30 +++++++++++++++++++++--- ts/receiver/configMessage.ts | 4 ++-- ts/receiver/queuedJob.ts | 4 ++-- ts/session/sending/MessageSender.ts | 2 +- ts/session/sending/MessageSentHandler.ts | 4 ++-- ts/util/expiringMessages.ts | 2 +- 7 files changed, 36 insertions(+), 12 deletions(-) diff --git a/ts/models/conversation.ts b/ts/models/conversation.ts index 02892d012..3724055f9 100644 --- a/ts/models/conversation.ts +++ b/ts/models/conversation.ts @@ -1809,7 +1809,7 @@ export class ConversationModel extends Backbone.Model { identifier: id, timestamp: sentAt, attachments, - expirationType: message.get('expirationType'), + expirationType: message.getExpirationType(), expireTimer: message.get('expireTimer'), preview: preview ? [preview] : [], quote, diff --git a/ts/models/message.ts b/ts/models/message.ts index 4229eb69c..4ba899752 100644 --- a/ts/models/message.ts +++ b/ts/models/message.ts @@ -294,7 +294,7 @@ export class MessageModel extends Backbone.Model { } public getPropsForExpiringMessage(): PropsForExpiringMessage { - const expirationType = this.get('expirationType'); + const expirationType = this.getExpirationType(); const expirationLength = this.get('expireTimer') ? this.get('expireTimer') * DURATION.SECONDS : null; @@ -517,7 +517,7 @@ export class MessageModel extends Backbone.Model { public getPropsForMessage(): PropsForMessageWithoutConvoProps { const sender = this.getSource(); - const expirationType = this.get('expirationType'); + const expirationType = this.getExpirationType(); const expirationLength = this.get('expireTimer') * DURATION.SECONDS; const expireTimerStart = this.get('expirationStartTimestamp'); const expirationTimestamp = @@ -1107,7 +1107,7 @@ export class MessageModel extends Backbone.Model { const convo = this.getConversation(); const canBeDeleteAfterRead = convo && !convo.isMe() && convo.isPrivate(); - const expirationType = this.get('expirationType'); + const expirationType = this.getExpirationType(); const expireTimer = this.get('expireTimer'); if (canBeDeleteAfterRead && expirationType && expireTimer > 0) { @@ -1349,6 +1349,30 @@ export class MessageModel extends Backbone.Model { } return this.get('body'); } + + // NOTE We want to replace Backbone .get() calls with these getters as we migrate to Redux completely eventually + // region Start of getters + public getExpirationType() { + return this.get('expirationType'); + } + + public getExpireTimer() { + return this.get('expireTimer'); + } + + public getExpirationStartTimestamp() { + return this.get('expirationStartTimestamp'); + } + + public getExpiresAt() { + return this.get('expires_at'); + } + + public getExpirationTimerUpdate() { + return this.get('expirationTimerUpdate'); + } + + // endregon } const throttledAllMessagesDispatch = debounce( diff --git a/ts/receiver/configMessage.ts b/ts/receiver/configMessage.ts index 5715ecd12..c8a9ab88d 100644 --- a/ts/receiver/configMessage.ts +++ b/ts/receiver/configMessage.ts @@ -708,8 +708,8 @@ async function applyConvoVolatileUpdateFromWrapper( messages2Expire .filter(m => Boolean( - m.get('expirationType') && - m.get('expirationType') !== 'deleteAfterSend' && + m.getExpirationType() && + m.getExpirationType() !== 'deleteAfterSend' && m.get('expireTimer') > 0 ) ) diff --git a/ts/receiver/queuedJob.ts b/ts/receiver/queuedJob.ts index 5331b3bed..4adf072aa 100644 --- a/ts/receiver/queuedJob.ts +++ b/ts/receiver/queuedJob.ts @@ -339,7 +339,7 @@ async function markConvoAsReadIfOutgoingMessage( if (isOutgoingMessage) { const sentAt = message.get('sent_at') || message.get('serverTimestamp'); if (sentAt) { - const expirationType = message.get('expirationType'); + const expirationType = message.getExpirationType(); const expireTimer = message.get('expireTimer'); // NOTE starting disappearing messages timer for all outbound messages if ( @@ -399,7 +399,7 @@ export async function handleMessageJob( ) { const expirationMode = changeToDisappearingConversationMode( conversation, - messageModel.get('expirationType'), + messageModel.getExpirationType(), messageModel.get('expireTimer') ); diff --git a/ts/session/sending/MessageSender.ts b/ts/session/sending/MessageSender.ts index 9acbc5921..3afa08c45 100644 --- a/ts/session/sending/MessageSender.ts +++ b/ts/session/sending/MessageSender.ts @@ -163,7 +163,7 @@ async function send( await foundMessage.updateMessageHash(messageSendHash); const convo = foundMessage.getConversation(); const expireTimer = foundMessage.get('expireTimer'); - const expirationType = foundMessage.get('expirationType'); + const expirationType = foundMessage.getExpirationType(); if ( convo && diff --git a/ts/session/sending/MessageSentHandler.ts b/ts/session/sending/MessageSentHandler.ts index ade48fdb5..fdffe2b7a 100644 --- a/ts/session/sending/MessageSentHandler.ts +++ b/ts/session/sending/MessageSentHandler.ts @@ -132,7 +132,7 @@ async function handleMessageSentSuccess( const convo = fetchedMessage.getConversation(); const expireTimer = fetchedMessage.get('expireTimer'); - const expirationType = fetchedMessage.get('expirationType'); + const expirationType = fetchedMessage.getExpirationType(); if ( convo && @@ -188,7 +188,7 @@ async function handleMessageSentFailure( }); // Disappeared messages that fail to send should not disappear - if (fetchedMessage.get('expirationType') && fetchedMessage.get('expireTimer') > 0) { + if (fetchedMessage.getExpirationType() && fetchedMessage.get('expireTimer') > 0) { fetchedMessage.set({ expirationStartTimestamp: undefined, }); diff --git a/ts/util/expiringMessages.ts b/ts/util/expiringMessages.ts index be1284891..88374d58b 100644 --- a/ts/util/expiringMessages.ts +++ b/ts/util/expiringMessages.ts @@ -646,7 +646,7 @@ export async function updateMessageExpiryOnSwarm( window.log.debug(`WIP: [updateMessageExpiryOnSwarm] called from: ${callLocation} `); } - if (!message.get('expirationType') || !message.get('expireTimer')) { + if (!message.getExpirationType() || !message.get('expireTimer')) { window.log.debug( `WIP: [updateMessageExpiryOnSwarm] Message ${message.get( 'messageHash'