fix: s3 saving media sent from me

This commit is contained in:
Davidson Gomes 2024-08-23 15:48:34 -03:00
parent e809f38865
commit 1b9fec6c27
2 changed files with 54 additions and 3 deletions

View File

@ -16,10 +16,11 @@
* Update Baileys Version * Update Baileys Version
* Fixed proxy config in manager * Fixed proxy config in manager
* Fixed send messages in groups * Fixed send messages in groups
* S3 saving media sent from me
### Break Changes ### Break Changes
* Payloads para os eventos alterado (create Instance e set dos eventos). Verifique o postman para entender * Payloads for events changed (create Instance and set events). Check postman to understand
# 2.0.10 (2024-08-16 16:23) # 2.0.10 (2024-08-16 16:23)

View File

@ -1958,11 +1958,61 @@ export class BaileysStartupService extends ChannelStartupService {
isIntegration, isIntegration,
}); });
if (this.configService.get<Database>('DATABASE').SAVE_DATA.NEW_MESSAGE) if (this.configService.get<Database>('DATABASE').SAVE_DATA.NEW_MESSAGE) {
await this.prismaRepository.message.create({ const msg = await this.prismaRepository.message.create({
data: messageRaw, data: messageRaw,
}); });
const isMedia =
messageRaw?.message?.imageMessage ||
messageRaw?.message?.videoMessage ||
messageRaw?.message?.stickerMessage ||
messageRaw?.message?.documentMessage ||
messageRaw?.message?.documentWithCaptionMessage ||
messageRaw?.message?.audioMessage;
if (isMedia) {
if (this.configService.get<S3>('S3').ENABLE) {
try {
const message: any = messageRaw;
const media = await this.getBase64FromMediaMessage(
{
message,
},
true,
);
const { buffer, mediaType, fileName, size } = media;
const mimetype = mime.getType(fileName).toString();
const fullName = join(`${this.instance.id}`, messageRaw.key.remoteJid, mediaType, fileName);
await s3Service.uploadFile(fullName, buffer, size.fileLength?.low, {
'Content-Type': mimetype,
});
await this.prismaRepository.media.create({
data: {
messageId: msg.id,
instanceId: this.instanceId,
type: mediaType,
fileName: fullName,
mimetype,
},
});
const mediaUrl = await s3Service.getObjectUrl(fullName);
messageRaw.message.mediaUrl = mediaUrl;
} catch (error) {
this.logger.error('line 1181');
this.logger.error(['Error on upload file to minio', error?.message, error?.stack]);
}
}
}
}
return messageSent; return messageSent;
} catch (error) { } catch (error) {
this.logger.error('line 2081'); this.logger.error('line 2081');