mirror of
https://github.com/EvolutionAPI/evolution-api.git
synced 2025-07-25 01:48:39 -06:00
Merge pull request #1069 from AlanCezarAraujo/fix/whatsapp-images
Correção de Imagens no Cloud API
This commit is contained in:
commit
52cf4fa8b8
@ -70,6 +70,13 @@ export class BusinessStartupService extends ChannelStartupService {
|
|||||||
await this.closeClient();
|
await this.closeClient();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private isMediaMessage(message: any) {
|
||||||
|
return message.document ||
|
||||||
|
message.image ||
|
||||||
|
message.audio ||
|
||||||
|
message.video
|
||||||
|
}
|
||||||
|
|
||||||
private async post(message: any, params: string) {
|
private async post(message: any, params: string) {
|
||||||
try {
|
try {
|
||||||
let urlServer = this.configService.get<WaBusiness>('WA_BUSINESS').URL;
|
let urlServer = this.configService.get<WaBusiness>('WA_BUSINESS').URL;
|
||||||
@ -301,12 +308,7 @@ export class BusinessStartupService extends ChannelStartupService {
|
|||||||
remoteJid: this.phoneNumber,
|
remoteJid: this.phoneNumber,
|
||||||
fromMe: received.messages[0].from === received.metadata.phone_number_id,
|
fromMe: received.messages[0].from === received.metadata.phone_number_id,
|
||||||
};
|
};
|
||||||
if (
|
if (this.isMediaMessage(received?.messages[0])) {
|
||||||
received?.messages[0].document ||
|
|
||||||
received?.messages[0].image ||
|
|
||||||
received?.messages[0].audio ||
|
|
||||||
received?.messages[0].video
|
|
||||||
) {
|
|
||||||
messageRaw = {
|
messageRaw = {
|
||||||
key,
|
key,
|
||||||
pushName,
|
pushName,
|
||||||
@ -339,7 +341,7 @@ export class BusinessStartupService extends ChannelStartupService {
|
|||||||
? 'audio'
|
? 'audio'
|
||||||
: 'video';
|
: 'video';
|
||||||
|
|
||||||
const mimetype = result.headers['content-type'];
|
const mimetype = result.data?.mime_type || result.headers['content-type'];
|
||||||
|
|
||||||
const contentDisposition = result.headers['content-disposition'];
|
const contentDisposition = result.headers['content-disposition'];
|
||||||
let fileName = `${message.messages[0].id}.${mimetype.split('/')[1]}`;
|
let fileName = `${message.messages[0].id}.${mimetype.split('/')[1]}`;
|
||||||
@ -352,15 +354,19 @@ export class BusinessStartupService extends ChannelStartupService {
|
|||||||
|
|
||||||
const size = result.headers['content-length'] || buffer.data.byteLength;
|
const size = result.headers['content-length'] || buffer.data.byteLength;
|
||||||
|
|
||||||
const fullName = join(`${this.instance.id}`, received.key.remoteJid, mediaType, fileName);
|
const fullName = join(`${this.instance.id}`, key.remoteJid, mediaType, fileName);
|
||||||
|
|
||||||
await s3Service.uploadFile(fullName, buffer.data, size, {
|
await s3Service.uploadFile(fullName, buffer.data, size, {
|
||||||
'Content-Type': mimetype,
|
'Content-Type': mimetype,
|
||||||
});
|
});
|
||||||
|
|
||||||
|
const createdMessage = await this.prismaRepository.message.create({
|
||||||
|
data: messageRaw,
|
||||||
|
});
|
||||||
|
|
||||||
await this.prismaRepository.media.create({
|
await this.prismaRepository.media.create({
|
||||||
data: {
|
data: {
|
||||||
messageId: received.messages[0].id,
|
messageId: createdMessage.id,
|
||||||
instanceId: this.instanceId,
|
instanceId: this.instanceId,
|
||||||
type: mediaType,
|
type: mediaType,
|
||||||
fileName: fullName,
|
fileName: fullName,
|
||||||
@ -371,6 +377,7 @@ export class BusinessStartupService extends ChannelStartupService {
|
|||||||
const mediaUrl = await s3Service.getObjectUrl(fullName);
|
const mediaUrl = await s3Service.getObjectUrl(fullName);
|
||||||
|
|
||||||
messageRaw.message.mediaUrl = mediaUrl;
|
messageRaw.message.mediaUrl = mediaUrl;
|
||||||
|
messageRaw.message.base64 = buffer.data.toString('base64');
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
this.logger.error(['Error on upload file to minio', error?.message, error?.stack]);
|
this.logger.error(['Error on upload file to minio', error?.message, error?.stack]);
|
||||||
}
|
}
|
||||||
@ -497,9 +504,11 @@ export class BusinessStartupService extends ChannelStartupService {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
await this.prismaRepository.message.create({
|
if (!this.isMediaMessage(received?.messages[0])) {
|
||||||
data: messageRaw,
|
await this.prismaRepository.message.create({
|
||||||
});
|
data: messageRaw,
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
const contact = await this.prismaRepository.contact.findFirst({
|
const contact = await this.prismaRepository.contact.findFirst({
|
||||||
where: { instanceId: this.instanceId, remoteJid: key.remoteJid },
|
where: { instanceId: this.instanceId, remoteJid: key.remoteJid },
|
||||||
|
Loading…
Reference in New Issue
Block a user