From 08cd253e90136418379ffe7d1351686e3ce578a4 Mon Sep 17 00:00:00 2001 From: Adhiraj Singh Date: Sat, 22 Jan 2022 12:05:38 +0530 Subject: [PATCH] feat: add 'updateMessageWithReceipt' utility --- src/Store/make-in-memory-store.ts | 10 ++-------- src/Utils/messages.ts | 14 +++++++++++++- 2 files changed, 15 insertions(+), 9 deletions(-) diff --git a/src/Store/make-in-memory-store.ts b/src/Store/make-in-memory-store.ts index 90a766d..dbca22c 100644 --- a/src/Store/make-in-memory-store.ts +++ b/src/Store/make-in-memory-store.ts @@ -6,7 +6,7 @@ import { DEFAULT_CONNECTION_CONFIG } from '../Defaults' import type makeLegacySocket from '../LegacySocket' import type makeMDSocket from '../Socket' import type { BaileysEventEmitter, Chat, ConnectionState, Contact, GroupMetadata, PresenceData, WAMessage, WAMessageCursor, WAMessageKey } from '../Types' -import { toNumber } from '../Utils' +import { toNumber, updateMessageWithReceipt } from '../Utils' import { jidNormalizedUser } from '../WABinary' import makeOrderedDictionary from './make-ordered-dictionary' @@ -225,13 +225,7 @@ export default ( const obj = messages[key.remoteJid!] const msg = obj?.get(key.id) if(msg) { - msg.userReceipt = msg.userReceipt || [] - const recp = msg.userReceipt.find(m => m.userJid === receipt.userJid) - if(recp) { - Object.assign(recp, receipt) - } else { - msg.userReceipt.push(receipt) - } + updateMessageWithReceipt(msg, receipt) } } }) diff --git a/src/Utils/messages.ts b/src/Utils/messages.ts index 9b4cc0a..7810943 100644 --- a/src/Utils/messages.ts +++ b/src/Utils/messages.ts @@ -11,12 +11,14 @@ import { MessageGenerationOptions, MessageGenerationOptionsFromContent, MessageType, + MessageUserReceipt, WAMediaUpload, WAMessage, WAMessageContent, WAMessageStatus, WAProto, - WATextMessage } from '../Types' + WATextMessage +} from '../Types' import { generateMessageID, unixTimestampSeconds } from './generics' import { encryptedStream, generateThumbnail, getAudioDuration } from './messages-media' @@ -493,3 +495,13 @@ export const getDevice = (id: string) => { const deviceType = id.length > 21 ? 'android' : id.substring(0, 2) === '3A' ? 'ios' : 'web' return deviceType } + +export const updateMessageWithReceipt = (msg: WAMessage, receipt: MessageUserReceipt) => { + msg.userReceipt = msg.userReceipt || [] + const recp = msg.userReceipt.find(m => m.userJid === receipt.userJid) + if(recp) { + Object.assign(recp, receipt) + } else { + msg.userReceipt.push(receipt) + } +}