Merge pull request 'FIX: importFromMeta resolve conflito de nome com templates locais existentes' (#7) from fix/templates into dev
All checks were successful
Deploy Dev — Backend / Deploy para VM Dev (push) Successful in 7s

Reviewed-on: #7
This commit is contained in:
Rafael Alves Lopes 2026-07-23 17:31:37 -03:00
commit 83f2319ca1
2 changed files with 30 additions and 18 deletions

View File

@ -188,7 +188,15 @@ export class WhatsappTemplateRepository {
CASE WHEN $7 = 'APPROVED' THEN CURRENT_TIMESTAMP ELSE NULL END,
CURRENT_TIMESTAMP
)
ON CONFLICT (meta_template_name) WHERE meta_template_name IS NOT NULL DO NOTHING`,
ON CONFLICT (name) DO UPDATE SET
meta_template_name = EXCLUDED.meta_template_name,
meta_template_id = EXCLUDED.meta_template_id,
meta_status = EXCLUDED.meta_status,
content = CASE WHEN whatsapp_templates.meta_template_name IS NULL THEN EXCLUDED.content ELSE whatsapp_templates.content END,
status = CASE WHEN EXCLUDED.meta_status = 'APPROVED' THEN 'approved' ELSE whatsapp_templates.status END,
meta_approved_at = CASE WHEN EXCLUDED.meta_status = 'APPROVED' THEN CURRENT_TIMESTAMP ELSE whatsapp_templates.meta_approved_at END,
updated_at = CURRENT_TIMESTAMP
WHERE whatsapp_templates.meta_template_name IS NULL`,
[
input.metaTemplateName,
input.content,
@ -204,8 +212,8 @@ export class WhatsappTemplateRepository {
],
);
return (result.rowCount || 0) > 0;
} catch {
return false;
} catch (err: any) {
throw new Error(`importFromMeta "${input.metaTemplateName}": ${err.message}`);
}
}

View File

@ -142,6 +142,7 @@ export class WhatsappTemplateService {
}
const parsed = this.parseComponents(t.components || []);
try {
const wasInserted = await this.repo.importFromMeta({
metaTemplateId: metaId,
metaTemplateName: t.name,
@ -159,6 +160,9 @@ export class WhatsappTemplateService {
imported++;
this.logger.log(`[Meta Templates] Importado: "${t.name}" (${t.status})`);
}
} catch (importErr: any) {
this.logger.warn(`[Meta Templates] Falha ao importar "${t.name}": ${importErr.message}`);
}
}
return { synced, imported };