Merge pull request #949 from nestordavalos/v2.0.0

fix: Corrected audio file handling in WhatsApp
This commit is contained in:
Davidson Gomes 2024-10-06 09:27:27 -03:00 committed by GitHub
commit db7428abd9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 51 additions and 32 deletions

View File

@ -47,11 +47,14 @@ export class SendMessageController {
}
public async sendWhatsAppAudio({ instanceName }: InstanceDto, data: SendAudioDto, file?: any) {
if (file || isURL(data.audio) || isBase64(data.audio)) {
if (file?.buffer || isURL(data.audio) || isBase64(data.audio)) {
// Si file existe y tiene buffer, o si es una URL o Base64, continúa
return await this.waMonitor.waInstances[instanceName].audioWhatsapp(data, file);
} else {
console.error('El archivo no tiene buffer o el audio no es una URL o Base64 válida');
throw new BadRequestException('Owned media must be a url, base64, or valid file with buffer');
}
throw new BadRequestException('Owned media must be a url or base64');
}
}
public async sendButtons({ instanceName }: InstanceDto, data: SendButtonDto) {
return await this.waMonitor.waInstances[instanceName].buttonMessage(data);

View File

@ -483,7 +483,12 @@ export class EvolutionStartupService extends ChannelStartupService {
public async audioWhatsapp(data: SendAudioDto, file?: any, isIntegration = false) {
const mediaData: SendAudioDto = { ...data };
if (file) mediaData.audio = file.buffer.toString('base64');
if (file?.buffer) {
mediaData.audio = file.buffer.toString('base64');
} else {
console.error("El archivo o buffer no está definido correctamente.");
throw new Error("File or buffer is undefined.");
}
const message = await this.processAudio(mediaData.audio, data.number);

View File

@ -1081,7 +1081,13 @@ export class BusinessStartupService extends ChannelStartupService {
public async audioWhatsapp(data: SendAudioDto, file?: any, isIntegration = false) {
const mediaData: SendAudioDto = { ...data };
if (file) mediaData.audio = file.buffer.toString('base64');
if (file?.buffer) {
// Asegurarse de que file y buffer existen antes de usarlos
mediaData.audio = file.buffer.toString('base64');
} else {
console.error('El archivo no tiene buffer o file es undefined');
throw new Error('File or buffer is undefined');
}
const message = await this.processAudio(mediaData.audio, data.number);

View File

@ -2574,7 +2574,12 @@ export class BaileysStartupService extends ChannelStartupService {
public async audioWhatsapp(data: SendAudioDto, file?: any, isIntegration = false) {
const mediaData: SendAudioDto = { ...data };
if (file) mediaData.audio = file.buffer.toString('base64');
if (file?.buffer) {
mediaData.audio = file.buffer.toString('base64');
} else if (!isURL(data.audio) && !isBase64(data.audio)) {
console.error('Invalid file or audio source');
throw new BadRequestException('File buffer, URL, or base64 audio is required');
}
if (!data?.encoding && data?.encoding !== false) {
data.encoding = true;