@@ -3910,6 +3910,16 @@ export class BaileysStartupService extends ChannelStartupService {
39103910 }
39113911
39123912 try {
3913+ const oldMessage : any = await this . getMessage ( data . key , true ) ;
3914+ if ( ! oldMessage ) throw new NotFoundException ( 'Message not found' ) ;
3915+ if ( oldMessage ?. key ?. remoteJid !== jid ) {
3916+ throw new BadRequestException ( 'RemoteJid does not match' ) ;
3917+ }
3918+ if ( oldMessage ?. messageTimestamp > Date . now ( ) + 900000 ) {
3919+ // 15 minutes in milliseconds
3920+ throw new BadRequestException ( 'Message is older than 15 minutes' ) ;
3921+ }
3922+
39133923 const response = await this . client . sendMessage ( jid , {
39143924 ...( options as any ) ,
39153925 edit : data . key ,
@@ -3933,15 +3943,17 @@ export class BaileysStartupService extends ChannelStartupService {
39333943 if ( ( message . key . valueOf ( ) as any ) ?. deleted ) {
39343944 new BadRequestException ( 'You cannot edit deleted messages' ) ;
39353945 }
3936-
3937- const updateMessage = this . prepareMessage ( { ...response } ) ;
3946+ if ( oldMessage . messageType === 'conversation' || oldMessage . messageType === 'extendedTextMessage' ) {
3947+ oldMessage . message . conversation = data . text ;
3948+ } else {
3949+ oldMessage . message [ oldMessage . messageType ] . caption = data . text ;
3950+ }
39383951 message = await this . prismaRepository . message . update ( {
39393952 where : { id : message . id } ,
39403953 data : {
3941- message : {
3942- ...updateMessage ?. message ?. [ updateMessage . messageType ] ?. editedMessage ,
3943- } ,
3954+ message : oldMessage . message ,
39443955 status : 'EDITED' ,
3956+ messageTimestamp : Math . floor ( Date . now ( ) / 1000 ) , // Convert to int32 by dividing by 1000 to get seconds
39453957 } ,
39463958 } ) ;
39473959 const messageUpdate : any = {
0 commit comments