From 198fe78c138455f16d02406234fcfb05c4581372 Mon Sep 17 00:00:00 2001 From: Sebastian Rindom Date: Wed, 30 Nov 2022 10:23:59 +0100 Subject: [PATCH] fix: allow passing idempotency key to service layer create (#2701) **What** Allow DraftOrders to be created with an IdempotencyKey. Note this doesn't implement idempotency for the DraftOrder create endpoint but allows the service layer to ingest the key and store it in the database. This is a preliminary step to being able to support an idempotent API request. --- .changeset/afraid-mugs-kneel.md | 5 +++++ packages/medusa/src/services/draft-order.ts | 10 ++++++++-- packages/medusa/src/types/draft-orders.ts | 1 + 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100644 .changeset/afraid-mugs-kneel.md diff --git a/.changeset/afraid-mugs-kneel.md b/.changeset/afraid-mugs-kneel.md new file mode 100644 index 0000000000..b312b4dc73 --- /dev/null +++ b/.changeset/afraid-mugs-kneel.md @@ -0,0 +1,5 @@ +--- +"@medusajs/medusa": patch +--- + +fix(medusa): allow passing idempotency key to service layer create diff --git a/packages/medusa/src/services/draft-order.ts b/packages/medusa/src/services/draft-order.ts index 0e9212667d..779d953b5f 100644 --- a/packages/medusa/src/services/draft-order.ts +++ b/packages/medusa/src/services/draft-order.ts @@ -259,8 +259,13 @@ class DraftOrderService extends TransactionBaseService { ) } - const { shipping_methods, no_notification_order, items, ...rawCart } = - data + const { + shipping_methods, + no_notification_order, + items, + idempotency_key, + ...rawCart + } = data const cartServiceTx = this.cartService_.withTransaction(transactionManager) @@ -285,6 +290,7 @@ class DraftOrderService extends TransactionBaseService { const draftOrder = draftOrderRepo.create({ cart_id: createdCart.id, no_notification_order, + idempotency_key, }) const result = await draftOrderRepo.save(draftOrder) diff --git a/packages/medusa/src/types/draft-orders.ts b/packages/medusa/src/types/draft-orders.ts index 3e982f63ce..0d449cbb81 100644 --- a/packages/medusa/src/types/draft-orders.ts +++ b/packages/medusa/src/types/draft-orders.ts @@ -16,6 +16,7 @@ export type DraftOrderCreateProps = { no_notification_order?: boolean shipping_methods: ShippingMethod[] metadata?: Record + idempotency_key?: string } type ShippingMethod = {