@wondai/n8n-nodes-nucleo 0.2.4 → 0.2.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -351,8 +351,8 @@ class Nucleo {
351
351
  name: "idempotencyKey",
352
352
  type: "string",
353
353
  default: "",
354
- description: "Opcional. Vazio = gerada automaticamente. Use a MESMA chave num retry para não duplicar o pedido.",
355
- displayOptions: { show: { resource: ["pedido"], operation: ["criar"] } },
354
+ description: "Opcional. Para criar: vazio = gerada automaticamente. Para alterar/cancelar: use a MESMA chave (ex.: messageID do WhatsApp) num retry para não reaplicar a operação.",
355
+ displayOptions: { show: { resource: ["pedido"], operation: ["criar", "alterar", "cancelar"] } },
356
356
  },
357
357
  // ----------------------------------------------------------------- pedido:alterar / cancelar
358
358
  {
@@ -477,6 +477,14 @@ class Nucleo {
477
477
  description: "Opcional. UUID de pedido gerado na conversa (validado contra o tenant).",
478
478
  displayOptions: { show: { resource: ["conversa"], operation: ["registrar"] } },
479
479
  },
480
+ {
481
+ displayName: "Idempotency Key",
482
+ name: "convIdempotencyKey",
483
+ type: "string",
484
+ default: "",
485
+ description: "Opcional. Use a MESMA chave (ex.: messageID do WhatsApp) num retry para não registrar a conversa duas vezes.",
486
+ displayOptions: { show: { resource: ["conversa"], operation: ["registrar"] } },
487
+ },
480
488
  ],
481
489
  };
482
490
  }
@@ -567,6 +575,9 @@ class Nucleo {
567
575
  b.definir_itens = definir;
568
576
  if (removerProdutos.length)
569
577
  b.remover_produto_ids = removerProdutos;
578
+ // Idempotência (opcional): mesma chave num retry → backend não reaplica a alteração.
579
+ idempotencyKey =
580
+ this.getNodeParameter("idempotencyKey", i, "").trim() || undefined;
570
581
  method = "PATCH";
571
582
  path = `/api/v1/agent/pedido/${encodeURIComponent(pedidoId)}`;
572
583
  bodyObj = b;
@@ -574,6 +585,8 @@ class Nucleo {
574
585
  else if (resource === "pedido" && operation === "cancelar") {
575
586
  const pedidoId = this.getNodeParameter("pedidoId", i).trim();
576
587
  const motivo = this.getNodeParameter("motivo", i, "").trim();
588
+ idempotencyKey =
589
+ this.getNodeParameter("idempotencyKey", i, "").trim() || undefined;
577
590
  method = "POST";
578
591
  path = `/api/v1/agent/pedido/${encodeURIComponent(pedidoId)}/cancelar`;
579
592
  bodyObj = motivo ? { motivo } : {};
@@ -588,6 +601,8 @@ class Nucleo {
588
601
  b.telefone = convTelefone;
589
602
  if (convPedidoId)
590
603
  b.pedido_id = convPedidoId;
604
+ idempotencyKey =
605
+ this.getNodeParameter("convIdempotencyKey", i, "").trim() || undefined;
591
606
  method = "POST";
592
607
  path = "/api/v1/agent/conversa/fechar";
593
608
  bodyObj = b;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wondai/n8n-nodes-nucleo",
3
- "version": "0.2.4",
3
+ "version": "0.2.5",
4
4
  "description": "Node n8n para o Núcleo Wondai — atendimento de IA (cliente, catálogo fuzzy, pedidos) com assinatura HMAC v1. Tenant vem do token (a parede, ADR-013).",
5
5
  "keywords": [
6
6
  "n8n-community-node-package",