[core] NOWEB - fix ack status from history

This commit is contained in:
devlikepro committed 2026-03-05 12:41:02 +07:00
1 parent 538bfe0e24
commit f37bf62a30
2 files changed
+22 -1

No files matched your search

@@ -44,6 +44,7 @@ import { INowebStorage } from './INowebStorage';
import { INowebStore } from './INowebStore';
import { LabelAssociationType } from '../labels/LabelAssociationType';
import esm from '@waha/vendor/esm';
import { StatusStringToStatus } from '@waha/core/utils/acks';
// eslint-disable-next-line @typescript-eslint/no-var-requires
const AsyncLock = require('async-lock');
@@ -249,6 +250,9 @@ export class NowebPersistentStore implements INowebStore {
private async syncMessagesHistory(messages) {
const realMessages = messages.filter(esm.b.isRealMessage);
messages = messages.filter((msg) => this.jids.include(msg.key.remoteJid));
for (const message of messages) {
message.status = StatusStringToStatus(message.status);
}
await this.messagesRepo.upsert(realMessages);
this.logger.info(
`history sync - '${messages.length}' got messages, '${realMessages.length}' real messages`,
+18 -1
View File
@@ -1,4 +1,4 @@
import { WAMessageAck } from '@waha/structures/enums.dto';
import { WAMessageAck, WAMessageAckName } from '@waha/structures/enums.dto';
export function StatusToAck(status: number): WAMessageAck {
return status - 1;
@@ -7,3 +7,20 @@ export function StatusToAck(status: number): WAMessageAck {
export function AckToStatus(ack: number): number {
return ack + 1;
}
export function StatusStringToStatus(status: number | string): number {
switch (status) {
case WAMessageAckName.ERROR:
return AckToStatus(WAMessageAck.ERROR);
case WAMessageAckName.PENDING:
return AckToStatus(WAMessageAck.PENDING);
case WAMessageAckName.SERVER:
return AckToStatus(WAMessageAck.SERVER);
case WAMessageAckName.READ:
return AckToStatus(WAMessageAck.READ);
case WAMessageAckName.PLAYED:
return AckToStatus(WAMessageAck.PLAYED);
default:
return status as any;
}
}