@@ -3003,7 +3003,49 @@ export class BaileysStartupService extends ChannelStartupService {
30033003
30043004 public async deleteMessage ( del : DeleteMessage ) {
30053005 try {
3006- return await this . client . sendMessage ( del . remoteJid , { delete : del } ) ;
3006+ const response = await this . client . sendMessage ( del . remoteJid , { delete : del } ) ;
3007+ if ( response ) {
3008+ const messageId = response . message ?. protocolMessage ?. key ?. id ;
3009+ if ( messageId ) {
3010+ const isLogicalDeleted = configService . get < Database > ( 'DATABASE' ) . DELETE_DATA . LOGICAL_MESSAGE_DELETE ;
3011+ let message = await this . prismaRepository . message . findUnique ( {
3012+ where : { id : messageId } ,
3013+ } ) ;
3014+ if ( isLogicalDeleted ) {
3015+ if ( ! message ) return response ;
3016+ const existingKey = typeof message ?. key === 'object' && message . key !== null ? message . key : { } ;
3017+ message = await this . prismaRepository . message . update ( {
3018+ where : { id : messageId } ,
3019+ data : {
3020+ key : {
3021+ ...existingKey ,
3022+ deleted : true ,
3023+ } ,
3024+ } ,
3025+ } ) ;
3026+ } else {
3027+ await this . prismaRepository . message . deleteMany ( {
3028+ where : {
3029+ id : messageId ,
3030+ } ,
3031+ } ) ;
3032+ }
3033+ this . sendDataWebhook ( Events . MESSAGES_DELETE , {
3034+ id : message . id ,
3035+ instanceId : message . instanceId ,
3036+ key : message . key ,
3037+ messageType : message . messageType ,
3038+ status : message . status ,
3039+ source : message . source ,
3040+ messageTimestamp : message . messageTimestamp ,
3041+ pushName : message . pushName ,
3042+ participant : message . participant ,
3043+ message : message . message ,
3044+ } ) ;
3045+ }
3046+ }
3047+
3048+ return response ;
30073049 } catch ( error ) {
30083050 throw new InternalServerErrorException ( 'Error while deleting message for everyone' , error ?. toString ( ) ) ;
30093051 }
0 commit comments