@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.
|
|
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.
|
|
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",
|