feat: update default conversation message for template message

This commit is contained in:
tms-desarrollo 2025-06-03 18:30:35 -04:00
parent 427c994993
commit 29cd00ddf8
3 changed files with 23 additions and 1 deletions

View File

@ -157,6 +157,7 @@ export class SendTemplateDto extends Metadata {
language: string;
components: any;
webhookUrl?: string;
message?: string;
}
export class SendContactDto extends Metadata {
contact: ContactMessage[];

View File

@ -713,6 +713,20 @@ export class BusinessStartupService extends ChannelStartupService {
return message;
}
private getTemplateMessage(message: string, parameters?: any[]) {
if (!message) return;
let transformedMessage = message;
parameters?.forEach((parameter, 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>('DATABASE');
const settings = await this.findSettings();
@ -903,7 +917,13 @@ 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');
const templateMessage = this.getTemplateMessage(message['template']['message'], body.parameters);
message = {
conversation: templateMessage ?? `▶️${message['template']['name']}◀️`,
};
return await this.post(content, 'messages');
}
})();

View File

@ -34,6 +34,7 @@ export const templateMessageSchema: JSONSchema7 = {
language: { type: 'string' },
components: { type: 'array' },
webhookUrl: { type: 'string' },
message: { type: 'string' },
},
required: ['name', 'language'],
};