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 makeLegacySocket from '../LegacySocket'
import type makeMDSocket from '../Socket' import type makeMDSocket from '../Socket'
import type { BaileysEventEmitter, Chat, ConnectionState, Contact, GroupMetadata, PresenceData, WAMessage, WAMessageCursor, WAMessageKey } from '../Types' 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 { jidNormalizedUser } from '../WABinary'
import makeOrderedDictionary from './make-ordered-dictionary' import makeOrderedDictionary from './make-ordered-dictionary'
@@ -225,13 +225,7 @@ export default (
const obj = messages[key.remoteJid!] const obj = messages[key.remoteJid!]
const msg = obj?.get(key.id) const msg = obj?.get(key.id)
if(msg) { if(msg) {
msg.userReceipt = msg.userReceipt || [] updateMessageWithReceipt(msg, receipt)
const recp = msg.userReceipt.find(m => m.userJid === receipt.userJid)
if(recp) {
Object.assign(recp, receipt)
} else {
msg.userReceipt.push(receipt)
}
} }
} }
}) })

View File

@@ -11,12 +11,14 @@ import {
MessageGenerationOptions, MessageGenerationOptions,
MessageGenerationOptionsFromContent, MessageGenerationOptionsFromContent,
MessageType, MessageType,
MessageUserReceipt,
WAMediaUpload, WAMediaUpload,
WAMessage, WAMessage,
WAMessageContent, WAMessageContent,
WAMessageStatus, WAMessageStatus,
WAProto, WAProto,
WATextMessage } from '../Types' WATextMessage
} from '../Types'
import { generateMessageID, unixTimestampSeconds } from './generics' import { generateMessageID, unixTimestampSeconds } from './generics'
import { encryptedStream, generateThumbnail, getAudioDuration } from './messages-media' 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' const deviceType = id.length > 21 ? 'android' : id.substring(0, 2) === '3A' ? 'ios' : 'web'
return deviceType 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)
}
}