From c08a9d2e6e973b0153d047e548045afcfb98d9af Mon Sep 17 00:00:00 2001 From: tms-desarrollo Date: Thu, 22 May 2025 15:29:47 -0400 Subject: [PATCH] feat: transform template message --- .../channel/meta/whatsapp.business.service.ts | 19 ++++++++++++++++++- 1 file changed, 18 insertions(+), 1 deletion(-) diff --git a/src/api/integrations/channel/meta/whatsapp.business.service.ts b/src/api/integrations/channel/meta/whatsapp.business.service.ts index 5360b9e4..98ad1936 100644 --- a/src/api/integrations/channel/meta/whatsapp.business.service.ts +++ b/src/api/integrations/channel/meta/whatsapp.business.service.ts @@ -713,6 +713,20 @@ export class BusinessStartupService extends ChannelStartupService { return message; } + private getTemplateMessage(message: string, parameters: any[]) { + let transformedMessage = message; + for (const index in parameters) { + const parameter = parameters[index]; + transformedMessage = transformedMessage.replace(`{{${index + 1}}}`, parameter.text); + } + return transformedMessage; + } + + private getTemplateComponent(components: any[], name: string) { + const c = components.find((c) => c.type.toUpperCase() === name.toUpperCase()); + return c ?? {}; + } + protected async eventHandler(content: any) { const database = this.configService.get('DATABASE'); const settings = await this.findSettings(); @@ -903,7 +917,10 @@ export class BusinessStartupService extends ChannelStartupService { }, }; quoted ? (content.context = { message_id: quoted.id }) : content; - message = { conversation: `▶️${message['template']['name']}◀️` }; + const body = this.getTemplateComponent(message['template']['components'], 'body'); + message = { + conversation: this.getTemplateMessage(message['template']['message'], body.parameters), + }; return await this.post(content, 'messages'); } })();