feat: add 'updateMessageWithReceipt' utility

This commit is contained in:
Adhiraj Singh
2022-01-22 12:05:38 +05:30
parent cf4a50cddf
commit 08cd253e90
2 changed files with 15 additions and 9 deletions

View File

@@ -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)
}
}
})

View File

@@ -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)
}
}