@@ -3040,7 +3040,49 @@ export class BaileysStartupService extends ChannelStartupService {
30403040
30413041 public async deleteMessage ( del : DeleteMessage ) {
30423042 try {
3043- return await this . client . sendMessage ( del . remoteJid , { delete : del } ) ;
3043+ const response = await this . client . sendMessage ( del . remoteJid , { delete : del } ) ;
3044+ if ( response ) {
3045+ const messageId = response . message ?. protocolMessage ?. key ?. id ;
3046+ if ( messageId ) {
3047+ const isLogicalDeleted = configService . get < Database > ( 'DATABASE' ) . DELETE_DATA . LOGICAL_MESSAGE_DELETE ;
3048+ let message = await this . prismaRepository . message . findUnique ( {
3049+ where : { id : messageId } ,
3050+ } ) ;
3051+ if ( isLogicalDeleted ) {
3052+ if ( ! message ) return response ;
3053+ const existingKey = typeof message ?. key === 'object' && message . key !== null ? message . key : { } ;
3054+ message = await this . prismaRepository . message . update ( {
3055+ where : { id : messageId } ,
3056+ data : {
3057+ key : {
3058+ ...existingKey ,
3059+ deleted : true ,
3060+ } ,
3061+ } ,
3062+ } ) ;
3063+ } else {
3064+ await this . prismaRepository . message . deleteMany ( {
3065+ where : {
3066+ id : messageId ,
3067+ } ,
3068+ } ) ;
3069+ }
3070+ this . sendDataWebhook ( Events . MESSAGES_DELETE , {
3071+ id : message . id ,
3072+ instanceId : message . instanceId ,
3073+ key : message . key ,
3074+ messageType : message . messageType ,
3075+ status : message . status ,
3076+ source : message . source ,
3077+ messageTimestamp : message . messageTimestamp ,
3078+ pushName : message . pushName ,
3079+ participant : message . participant ,
3080+ message : message . message ,
3081+ } ) ;
3082+ }
3083+ }
3084+
3085+ return response ;
30443086 } catch ( error ) {
30453087 throw new InternalServerErrorException ( 'Error while deleting message for everyone' , error ?. toString ( ) ) ;
30463088 }
0 commit comments