[core] Add chats /archive and /unarchive

fixes #434
This commit is contained in:
devlikepro committed 2024-08-04 10:06:42 +07:00
1 parent c3ece96390
commit b89f9d6b35
4 files changed
+62

No files matched your search

+23
View File
@@ -4,6 +4,7 @@ import {
Delete,
Get,
Param,
Post,
Put,
Query,
UsePipes,
@@ -98,6 +99,28 @@ class ChatsController {
) {
return session.editMessage(chatId, messageId, body);
}
@Post(':chatId/archive')
@SessionApiParam
@ChatIdApiParam
@ApiOperation({ summary: 'Archive the chat' })
archiveChat(
@SessionParam session: WhatsappSession,
@Param('chatId') chatId: string,
) {
return session.chatsArchiveChat(chatId);
}
@Post(':chatId/unarchive')
@SessionApiParam
@ChatIdApiParam
@ApiOperation({ summary: 'Unarchive the chat' })
unarchiveChat(
@SessionParam session: WhatsappSession,
@Param('chatId') chatId: string,
) {
return session.chatsUnarchiveChat(chatId);
}
}
export { ChatsController };
+8
View File
@@ -324,6 +324,14 @@ export abstract class WhatsappSession {
throw new NotImplementedByEngineError();
}
public chatsArchiveChat(chatId: string): Promise<any> {
throw new NotImplementedByEngineError();
}
public chatsUnarchiveChat(chatId: string): Promise<any> {
throw new NotImplementedByEngineError();
}
/**
* Contacts methods
*/
@@ -11,6 +11,7 @@ import makeWASocket, {
isRealMessage,
jidNormalizedUser,
makeCacheableSignalKeyStore,
MinimalMessage,
NewsletterMetadata,
normalizeMessageContent,
PresenceData,
@@ -700,6 +701,26 @@ export class WhatsappSessionNoWebCore extends WhatsappSession {
return chats;
}
protected async chatsPutArchive(
chatId: string,
archive: boolean,
): Promise<any> {
const jid = toJID(chatId);
const messages = await this.store.getMessagesByJid(jid, 1);
return await this.sock.chatModify(
{ archive: archive, lastMessages: messages },
jid,
);
}
public chatsArchiveChat(chatId: string): Promise<any> {
return this.chatsPutArchive(chatId, true);
}
public chatsUnarchiveChat(chatId: string): Promise<any> {
return this.chatsPutArchive(chatId, false);
}
/**
* Contacts methods
*/
@@ -468,6 +468,16 @@ export class WhatsappSessionWebJSCore extends WhatsappSession {
return chat.clearMessages();
}
public chatsArchiveChat(chatId: string): Promise<any> {
const id = this.ensureSuffix(chatId);
return this.whatsapp.archiveChat(id);
}
public chatsUnarchiveChat(chatId: string): Promise<any> {
const id = this.ensureSuffix(chatId);
return this.whatsapp.unarchiveChat(id);
}
/**
* Contacts methods
*/