mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-16 12:12:55 -06:00
Merge pull request #1195 from GrimBit1/main
Refactor edit and delete message functionality in BaileyStartupService
This commit is contained in:
commit
023e030802
@ -3596,6 +3596,18 @@ export class BaileysStartupService extends ChannelStartupService {
|
|||||||
status: 'DELETED',
|
status: 'DELETED',
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
const messageUpdate: any = {
|
||||||
|
messageId: message.id,
|
||||||
|
keyId: messageId,
|
||||||
|
remoteJid: response.key.remoteJid,
|
||||||
|
fromMe: response.key.fromMe,
|
||||||
|
participant: response.key?.remoteJid,
|
||||||
|
status: 'DELETED',
|
||||||
|
instanceId: this.instanceId,
|
||||||
|
};
|
||||||
|
await this.prismaRepository.messageUpdate.create({
|
||||||
|
data: messageUpdate,
|
||||||
|
});
|
||||||
} else {
|
} else {
|
||||||
await this.prismaRepository.message.deleteMany({
|
await this.prismaRepository.message.deleteMany({
|
||||||
where: {
|
where: {
|
||||||
@ -3922,13 +3934,72 @@ export class BaileysStartupService extends ChannelStartupService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
try {
|
try {
|
||||||
return await this.client.sendMessage(jid, {
|
const response = await this.client.sendMessage(jid, {
|
||||||
...(options as any),
|
...(options as any),
|
||||||
edit: data.key,
|
edit: data.key,
|
||||||
});
|
});
|
||||||
|
if (response) {
|
||||||
|
const messageId = response.message?.protocolMessage?.key?.id;
|
||||||
|
if (messageId) {
|
||||||
|
let message = await this.prismaRepository.message.findFirst({
|
||||||
|
where: {
|
||||||
|
key: {
|
||||||
|
path: ['id'],
|
||||||
|
equals: messageId,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
if (!message) throw new NotFoundException('Message not found');
|
||||||
|
|
||||||
|
if (!(message.key.valueOf() as any).fromMe) {
|
||||||
|
new BadRequestException('You cannot edit others messages');
|
||||||
|
}
|
||||||
|
if ((message.key.valueOf() as any)?.deleted) {
|
||||||
|
new BadRequestException('You cannot edit deleted messages');
|
||||||
|
}
|
||||||
|
|
||||||
|
const updateMessage = this.prepareMessage({ ...response });
|
||||||
|
message = await this.prismaRepository.message.update({
|
||||||
|
where: { id: message.id },
|
||||||
|
data: {
|
||||||
|
message: {
|
||||||
|
...updateMessage?.message?.[updateMessage.messageType]?.editedMessage,
|
||||||
|
},
|
||||||
|
status: 'EDITED',
|
||||||
|
},
|
||||||
|
});
|
||||||
|
const messageUpdate: any = {
|
||||||
|
messageId: message.id,
|
||||||
|
keyId: messageId,
|
||||||
|
remoteJid: response.key.remoteJid,
|
||||||
|
fromMe: response.key.fromMe,
|
||||||
|
participant: response.key?.remoteJid,
|
||||||
|
status: 'EDITED',
|
||||||
|
instanceId: this.instanceId,
|
||||||
|
};
|
||||||
|
await this.prismaRepository.messageUpdate.create({
|
||||||
|
data: messageUpdate,
|
||||||
|
});
|
||||||
|
|
||||||
|
this.sendDataWebhook(Events.MESSAGES_EDITED, {
|
||||||
|
id: message.id,
|
||||||
|
instanceId: message.instanceId,
|
||||||
|
key: message.key,
|
||||||
|
messageType: message.messageType,
|
||||||
|
status: 'EDITED',
|
||||||
|
source: message.source,
|
||||||
|
messageTimestamp: message.messageTimestamp,
|
||||||
|
pushName: message.pushName,
|
||||||
|
participant: message.participant,
|
||||||
|
message: message.message,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return response;
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.logger.error(error);
|
this.logger.error(error);
|
||||||
throw new BadRequestException(error.toString());
|
throw error;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user