fix(media): improve media download handling for base64 conversion

- Enhanced the logic for converting media messages to base64 by adding a retry mechanism for downloading media if the initial buffer is not available.
- This change ensures that media messages are reliably converted to base64 format, improving the robustness of media handling in the WhatsApp integration service.
- Updated error logging to capture issues during the media conversion process.
This commit is contained in:
Davidson Gomes 2025-05-21 15:01:17 -03:00
parent 7cccda10bb
commit 624b37e2aa

View File

@ -1389,7 +1389,24 @@ export class BaileysStartupService extends ChannelStartupService {
},
);
messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined;
if (buffer) {
messageRaw.message.base64 = buffer.toString('base64');
} else {
// retry to download media
const buffer = await downloadMediaMessage(
{ key: received.key, message: received?.message },
'buffer',
{},
{
logger: P({ level: 'error' }) as any,
reuploadRequest: this.client.updateMediaMessage,
},
);
if (buffer) {
messageRaw.message.base64 = buffer.toString('base64');
}
}
} catch (error) {
this.logger.error(['Error converting media to base64', error?.message]);
}
@ -2373,7 +2390,24 @@ export class BaileysStartupService extends ChannelStartupService {
},
);
messageRaw.message.base64 = buffer ? buffer.toString('base64') : undefined;
if (buffer) {
messageRaw.message.base64 = buffer.toString('base64');
} else {
// retry to download media
const buffer = await downloadMediaMessage(
{ key: messageRaw.key, message: messageRaw?.message },
'buffer',
{},
{
logger: P({ level: 'error' }) as any,
reuploadRequest: this.client.updateMediaMessage,
},
);
if (buffer) {
messageRaw.message.base64 = buffer.toString('base64');
}
}
} catch (error) {
this.logger.error(['Error converting media to base64', error?.message]);
}