From 7b4abcdb231434c08c14dbb5879cd1fd4939fc41 Mon Sep 17 00:00:00 2001 From: dudagervasio <49364808+dudagervasio@users.noreply.github.com> Date: Thu, 18 May 2023 09:04:19 -0300 Subject: [PATCH] fix: In memory store: normalize user when asserting message list to update messages (#49) * normalize user when asserting message list to update messages * in memory * update verifies status * code style improved --- src/Store/make-in-memory-store.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Store/make-in-memory-store.ts b/src/Store/make-in-memory-store.ts index f8d7a6b..477be1d 100644 --- a/src/Store/make-in-memory-store.ts +++ b/src/Store/make-in-memory-store.ts @@ -167,7 +167,16 @@ export default ( }) ev.on('messages.update', updates => { for(const { update, key } of updates) { - const list = assertMessageList(key.remoteJid!) + const list = assertMessageList(jidNormalizedUser(key.remoteJid!)) + if(update?.status) { + const listStatus = list.get(key.id!)?.status + if(listStatus && update?.status <= listStatus) { + logger.debug({ update, storedStatus: listStatus }, 'status stored newer then update') + delete update.status + logger.debug({ update }, 'new update object') + } + } + const result = list.updateAssign(key.id!, update) if(!result) { logger.debug({ update }, 'got update for non-existent message')