@@ -68,6 +68,7 @@ import {
6868 DeleteMessage ,
6969 getBase64FromMediaMessageDto ,
7070 LastMessage ,
71+ MarkChatUnreadDto ,
7172 NumberBusiness ,
7273 OnWhatsAppDto ,
7374 PrivacySettingDto ,
@@ -2714,6 +2715,45 @@ export class BaileysStartupService extends ChannelStartupService {
27142715 }
27152716 }
27162717
2718+ public async markChatUnread ( data : MarkChatUnreadDto ) {
2719+ this . logger . verbose ( 'Marking chat as unread' ) ;
2720+
2721+ try {
2722+ let last_message = data . lastMessage ;
2723+ let number = data . chat ;
2724+
2725+ if ( ! last_message && number ) {
2726+ last_message = await this . getLastMessage ( number ) ;
2727+ } else {
2728+ last_message = data . lastMessage ;
2729+ last_message . messageTimestamp = last_message ?. messageTimestamp ?? Date . now ( ) ;
2730+ number = last_message ?. key ?. remoteJid ;
2731+ }
2732+
2733+ if ( ! last_message || Object . keys ( last_message ) . length === 0 ) {
2734+ throw new NotFoundException ( 'Last message not found' ) ;
2735+ }
2736+
2737+ await this . client . chatModify (
2738+ {
2739+ markRead : false ,
2740+ lastMessages : [ last_message ] ,
2741+ } ,
2742+ this . createJid ( number ) ,
2743+ ) ;
2744+
2745+ return {
2746+ chatId : number ,
2747+ markedChatUnread : true ,
2748+ } ;
2749+ } catch ( error ) {
2750+ throw new InternalServerErrorException ( {
2751+ markedChatUnread : false ,
2752+ message : [ 'An error occurred while marked unread the chat. Open a calling.' , error . toString ( ) ] ,
2753+ } ) ;
2754+ }
2755+ }
2756+
27172757 public async deleteMessage ( del : DeleteMessage ) {
27182758 this . logger . verbose ( 'Deleting message' ) ;
27192759 try {
0 commit comments