Update whatsapp.service.ts

This commit is contained in:
Alan Mosko 2023-07-27 09:24:38 -03:00
parent 52533d4b38
commit 3ae6944307

View File

@ -72,9 +72,9 @@ import {
ArchiveChatDto, ArchiveChatDto,
DeleteMessage, DeleteMessage,
getBase64FromMediaMessageDto, getBase64FromMediaMessageDto,
LastMessage,
NumberBusiness, NumberBusiness,
OnWhatsAppDto, OnWhatsAppDto,
LastMessage,
PrivacySettingDto, PrivacySettingDto,
ReadMessageDto, ReadMessageDto,
WhatsAppNumberDto, WhatsAppNumberDto,
@ -2346,28 +2346,28 @@ export class WAStartupService {
throw new InternalServerErrorException('Read messages fail', error.toString()); throw new InternalServerErrorException('Read messages fail', error.toString());
} }
} }
public async getLastMessage(number: string) { public async getLastMessage(number: string) {
const messages = await this.fetchMessages({ const messages = await this.fetchMessages({
where: { where: {
key: { key: {
remoteJid: number remoteJid: number,
}, },
owner: this.instance.name owner: this.instance.name,
} },
}); });
let lastMessage = messages.pop(); let lastMessage = messages.pop();
for (const message of messages) { for (const message of messages) {
if ( if (
message.messageTimestamp?.low >= lastMessage.messageTimestamp?.low message.messageTimestamp?.low >= lastMessage.messageTimestamp?.low ||
|| message.messageTimestamp >= lastMessage.messageTimestamp message.messageTimestamp >= lastMessage.messageTimestamp
) { ) {
lastMessage = message; lastMessage = message;
} }
} }
return lastMessage as unknown as LastMessage; return lastMessage as unknown as LastMessage;
} }
@ -2376,32 +2376,32 @@ export class WAStartupService {
try { try {
let last_message = data.lastMessage; let last_message = data.lastMessage;
let number = data.chat; let number = data.chat;
if(!last_message && number) { if (!last_message && number) {
last_message = await this.getLastMessage(number); last_message = await this.getLastMessage(number);
} else { } else {
last_message = data.lastMessage; last_message = data.lastMessage;
last_message.messageTimestamp = last_message?.messageTimestamp ?? Date.now(); last_message.messageTimestamp = last_message?.messageTimestamp ?? Date.now();
number = last_message?.key?.remoteJid; number = last_message?.key?.remoteJid;
} }
if (!last_message || Object.keys(last_message).length === 0) { if (!last_message || Object.keys(last_message).length === 0) {
throw new NotFoundException("Last message not found"); throw new NotFoundException('Last message not found');
} }
console.log(last_message); console.log(last_message);
await this.client.chatModify( await this.client.chatModify(
{ {
archive: data.archive, archive: data.archive,
lastMessages: [last_message] lastMessages: [last_message],
}, },
this.createJid(number) this.createJid(number),
); );
return { return {
chatId: number, chatId: number,
archived: true, archived: true,
}; };
} catch (error) { } catch (error) {
throw new InternalServerErrorException({ throw new InternalServerErrorException({
archived: false, archived: false,