[core] NOWEB - fix ack status from history
This commit is contained in:
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
@@ -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;
|
||||
}
|
||||
}
|
||||
Reference in new issue
Block a user