chore: Add locks to order edit flows (#14270)
This commit is contained in:
1 parent
8bd1d22765
commit
bca145bdbe
13 files changed
+174
-19
No files matched your search
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/core-flows": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
chore: Add locks to order edit flows
|
||||||
@@ -11,6 +11,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { createOrderChangeStep } from "../../steps/create-order-change"
|
import { createOrderChangeStep } from "../../steps/create-order-change"
|
||||||
import { throwIfOrderIsCancelled } from "../../utils/order-validation"
|
import { throwIfOrderIsCancelled } from "../../utils/order-validation"
|
||||||
import { fieldsToRefreshOrderEdit } from "./utils/fields"
|
import { fieldsToRefreshOrderEdit } from "./utils/fields"
|
||||||
@@ -79,6 +80,12 @@ export const beginOrderEditOrderWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.BeginorderEditWorkflowInput>
|
input: WorkflowData<OrderWorkflow.BeginorderEditWorkflowInput>
|
||||||
): WorkflowResponse<OrderChangeDTO> {
|
): WorkflowResponse<OrderChangeDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -106,6 +113,10 @@ export const beginOrderEditOrderWorkflow = createWorkflow(
|
|||||||
|
|
||||||
const orderChange = createOrderChangeStep(orderChangeInput)
|
const orderChange = createOrderChangeStep(orderChangeInput)
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(orderChange)
|
return new WorkflowResponse(orderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -12,6 +12,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { emitEventStep, useQueryGraphStep } from "../../../common"
|
import { emitEventStep, useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { deleteOrderChangesStep, deleteOrderShippingMethods } from "../../steps"
|
import { deleteOrderChangesStep, deleteOrderShippingMethods } from "../../steps"
|
||||||
import {
|
import {
|
||||||
throwIfIsCancelled,
|
throwIfIsCancelled,
|
||||||
@@ -102,6 +103,12 @@ export const cancelBeginOrderEditWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<CancelBeginOrderEditWorkflowInput>
|
input: WorkflowData<CancelBeginOrderEditWorkflowInput>
|
||||||
): WorkflowData<void> {
|
): WorkflowData<void> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -160,5 +167,9 @@ export const cancelBeginOrderEditWorkflow = createWorkflow(
|
|||||||
data: eventData,
|
data: eventData,
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -23,6 +23,7 @@ import {
|
|||||||
requiredOrderFieldsForInventoryConfirmation,
|
requiredOrderFieldsForInventoryConfirmation,
|
||||||
} from "../../../cart/utils/prepare-confirm-inventory-input"
|
} from "../../../cart/utils/prepare-confirm-inventory-input"
|
||||||
import { emitEventStep, useQueryGraphStep } from "../../../common"
|
import { emitEventStep, useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { deleteReservationsByLineItemsStep } from "../../../reservation"
|
import { deleteReservationsByLineItemsStep } from "../../../reservation"
|
||||||
import { previewOrderChangeStep } from "../../steps"
|
import { previewOrderChangeStep } from "../../steps"
|
||||||
import { confirmOrderChanges } from "../../steps/confirm-order-changes"
|
import { confirmOrderChanges } from "../../steps/confirm-order-changes"
|
||||||
@@ -120,6 +121,12 @@ export const confirmOrderEditRequestWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: ConfirmOrderEditRequestWorkflowInput
|
input: ConfirmOrderEditRequestWorkflowInput
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -286,6 +293,10 @@ export const confirmOrderEditRequestWorkflow = createWorkflow(
|
|||||||
data: eventData,
|
data: eventData,
|
||||||
})
|
})
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(orderPreview)
|
return new WorkflowResponse(orderPreview)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+17
-5
@@ -15,6 +15,7 @@ import {
|
|||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { pricingContextResult } from "../../../cart/utils/schemas"
|
import { pricingContextResult } from "../../../cart/utils/schemas"
|
||||||
import { useRemoteQueryStep } from "../../../common"
|
import { useRemoteQueryStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { previewOrderChangeStep } from "../../steps"
|
import { previewOrderChangeStep } from "../../steps"
|
||||||
import { createOrderShippingMethods } from "../../steps/create-order-shipping-methods"
|
import { createOrderShippingMethods } from "../../steps/create-order-shipping-methods"
|
||||||
import {
|
import {
|
||||||
@@ -154,6 +155,12 @@ export const createOrderEditShippingMethodWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: CreateOrderEditShippingMethodWorkflowInput & AdditionalData
|
input: CreateOrderEditShippingMethodWorkflowInput & AdditionalData
|
||||||
) {
|
) {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const order: OrderDTO = useRemoteQueryStep({
|
const order: OrderDTO = useRemoteQueryStep({
|
||||||
entry_point: "orders",
|
entry_point: "orders",
|
||||||
fields: ["id", "status", "currency_code", "canceled_at"],
|
fields: ["id", "status", "currency_code", "canceled_at"],
|
||||||
@@ -274,11 +281,16 @@ export const createOrderEditShippingMethodWorkflow = createWorkflow(
|
|||||||
input: [orderChangeActionInput],
|
input: [orderChangeActionInput],
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(
|
const previewOrderChange = previewOrderChangeStep(
|
||||||
previewOrderChangeStep(order.id) as OrderPreviewDTO,
|
order.id
|
||||||
{
|
) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange, {
|
||||||
hooks: [setPricingContext] as const,
|
hooks: [setPricingContext] as const,
|
||||||
}
|
})
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -13,16 +13,17 @@ import {
|
|||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { previewOrderChangeStep } from "../../steps/preview-order-change"
|
import { previewOrderChangeStep } from "../../steps/preview-order-change"
|
||||||
import {
|
import {
|
||||||
throwIfIsCancelled,
|
throwIfIsCancelled,
|
||||||
throwIfOrderChangeIsNotActive,
|
throwIfOrderChangeIsNotActive,
|
||||||
} from "../../utils/order-validation"
|
} from "../../utils/order-validation"
|
||||||
import { addOrderLineItemsWorkflow } from "../add-line-items"
|
import { addOrderLineItemsWorkflow } from "../add-line-items"
|
||||||
|
import { computeAdjustmentsForPreviewWorkflow } from "../compute-adjustments-for-preview"
|
||||||
import { createOrderChangeActionsWorkflow } from "../create-order-change-actions"
|
import { createOrderChangeActionsWorkflow } from "../create-order-change-actions"
|
||||||
import { updateOrderTaxLinesWorkflow } from "../update-tax-lines"
|
import { updateOrderTaxLinesWorkflow } from "../update-tax-lines"
|
||||||
import { fieldsToRefreshOrderEdit } from "./utils/fields"
|
import { fieldsToRefreshOrderEdit } from "./utils/fields"
|
||||||
import { computeAdjustmentsForPreviewWorkflow } from "../compute-adjustments-for-preview"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The data to validate that new items can be added to an order edit.
|
* The data to validate that new items can be added to an order edit.
|
||||||
@@ -103,6 +104,12 @@ export const orderEditAddNewItemWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.OrderEditAddNewItemWorkflowInput>
|
input: WorkflowData<OrderWorkflow.OrderEditAddNewItemWorkflowInput>
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -193,6 +200,14 @@ export const orderEditAddNewItemWorkflow = createWorkflow(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(input.order_id))
|
const previewOrderChange = previewOrderChangeStep(
|
||||||
|
input.order_id
|
||||||
|
) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+15
-2
@@ -18,13 +18,14 @@ import {
|
|||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { previewOrderChangeStep } from "../../steps/preview-order-change"
|
import { previewOrderChangeStep } from "../../steps/preview-order-change"
|
||||||
import {
|
import {
|
||||||
throwIfIsCancelled,
|
throwIfIsCancelled,
|
||||||
throwIfOrderChangeIsNotActive,
|
throwIfOrderChangeIsNotActive,
|
||||||
} from "../../utils/order-validation"
|
} from "../../utils/order-validation"
|
||||||
import { createOrderChangeActionsWorkflow } from "../create-order-change-actions"
|
|
||||||
import { computeAdjustmentsForPreviewWorkflow } from "../compute-adjustments-for-preview"
|
import { computeAdjustmentsForPreviewWorkflow } from "../compute-adjustments-for-preview"
|
||||||
|
import { createOrderChangeActionsWorkflow } from "../create-order-change-actions"
|
||||||
import { fieldsToRefreshOrderEdit } from "./utils/fields"
|
import { fieldsToRefreshOrderEdit } from "./utils/fields"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -113,6 +114,12 @@ export const orderEditUpdateItemQuantityWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.OrderEditUpdateItemQuantityWorkflowInput>
|
input: WorkflowData<OrderWorkflow.OrderEditUpdateItemQuantityWorkflowInput>
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -194,6 +201,12 @@ export const orderEditUpdateItemQuantityWorkflow = createWorkflow(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(input.order_id))
|
const previewOrderChange = previewOrderChangeStep(input.order_id) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+14
-1
@@ -14,6 +14,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import {
|
import {
|
||||||
deleteOrderChangeActionsStep,
|
deleteOrderChangeActionsStep,
|
||||||
previewOrderChangeStep,
|
previewOrderChangeStep,
|
||||||
@@ -128,6 +129,12 @@ export const removeItemOrderEditActionWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.DeleteOrderEditItemActionWorkflowInput>
|
input: WorkflowData<OrderWorkflow.DeleteOrderEditItemActionWorkflowInput>
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -172,6 +179,12 @@ export const removeItemOrderEditActionWorkflow = createWorkflow(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(order.id))
|
const previewOrderChange = previewOrderChangeStep(order.id) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+14
-1
@@ -14,6 +14,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { deleteOrderShippingMethods } from "../../steps"
|
import { deleteOrderShippingMethods } from "../../steps"
|
||||||
import { deleteOrderChangeActionsStep } from "../../steps/delete-order-change-actions"
|
import { deleteOrderChangeActionsStep } from "../../steps/delete-order-change-actions"
|
||||||
import { previewOrderChangeStep } from "../../steps/preview-order-change"
|
import { previewOrderChangeStep } from "../../steps/preview-order-change"
|
||||||
@@ -111,6 +112,12 @@ export const removeOrderEditShippingMethodWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.DeleteOrderEditShippingMethodWorkflowInput>
|
input: WorkflowData<OrderWorkflow.DeleteOrderEditShippingMethodWorkflowInput>
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderChangeResult = useQueryGraphStep({
|
const orderChangeResult = useQueryGraphStep({
|
||||||
entity: "order_change",
|
entity: "order_change",
|
||||||
fields: ["id", "status", "version", "actions.*"],
|
fields: ["id", "status", "version", "actions.*"],
|
||||||
@@ -151,6 +158,12 @@ export const removeOrderEditShippingMethodWorkflow = createWorkflow(
|
|||||||
deleteOrderShippingMethods({ ids: [dataToRemove.shippingMethodId] })
|
deleteOrderShippingMethods({ ids: [dataToRemove.shippingMethodId] })
|
||||||
)
|
)
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(input.order_id))
|
const previewOrderChange = previewOrderChangeStep(input.order_id) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
@@ -14,6 +14,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { emitEventStep, useQueryGraphStep } from "../../../common"
|
import { emitEventStep, useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import { previewOrderChangeStep } from "../../steps"
|
import { previewOrderChangeStep } from "../../steps"
|
||||||
import { updateOrderChangesStep } from "../../steps/update-order-changes"
|
import { updateOrderChangesStep } from "../../steps/update-order-changes"
|
||||||
import {
|
import {
|
||||||
@@ -128,6 +129,12 @@ export const requestOrderEditRequestWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: OrderEditRequestWorkflowInput
|
input: OrderEditRequestWorkflowInput
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -180,6 +187,12 @@ export const requestOrderEditRequestWorkflow = createWorkflow(
|
|||||||
data: eventData,
|
data: eventData,
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(order.id))
|
const previewOrderChange = previewOrderChangeStep(order.id) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+14
-1
@@ -14,6 +14,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import {
|
import {
|
||||||
previewOrderChangeStep,
|
previewOrderChangeStep,
|
||||||
updateOrderChangeActionsStep,
|
updateOrderChangeActionsStep,
|
||||||
@@ -127,6 +128,12 @@ export const updateOrderEditAddItemWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.UpdateOrderEditAddNewItemWorkflowInput>
|
input: WorkflowData<OrderWorkflow.UpdateOrderEditAddNewItemWorkflowInput>
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -193,6 +200,12 @@ export const updateOrderEditAddItemWorkflow = createWorkflow(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(order.id))
|
const previewOrderChange = previewOrderChangeStep(order.id) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+14
-1
@@ -14,6 +14,7 @@ import {
|
|||||||
transform,
|
transform,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../../common"
|
import { useQueryGraphStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import {
|
import {
|
||||||
previewOrderChangeStep,
|
previewOrderChangeStep,
|
||||||
updateOrderChangeActionsStep,
|
updateOrderChangeActionsStep,
|
||||||
@@ -134,6 +135,12 @@ export const updateOrderEditItemQuantityWorkflow = createWorkflow(
|
|||||||
function (
|
function (
|
||||||
input: WorkflowData<OrderWorkflow.UpdateOrderEditItemQuantityWorkflowInput>
|
input: WorkflowData<OrderWorkflow.UpdateOrderEditItemQuantityWorkflowInput>
|
||||||
): WorkflowResponse<OrderPreviewDTO> {
|
): WorkflowResponse<OrderPreviewDTO> {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -196,6 +203,12 @@ export const updateOrderEditItemQuantityWorkflow = createWorkflow(
|
|||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(previewOrderChangeStep(order.id))
|
const previewOrderChange = previewOrderChangeStep(order.id) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
+17
-5
@@ -18,6 +18,7 @@ import {
|
|||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { pricingContextResult } from "../../../cart/utils/schemas"
|
import { pricingContextResult } from "../../../cart/utils/schemas"
|
||||||
import { useQueryGraphStep, useRemoteQueryStep } from "../../../common"
|
import { useQueryGraphStep, useRemoteQueryStep } from "../../../common"
|
||||||
|
import { acquireLockStep, releaseLockStep } from "../../../locking"
|
||||||
import {
|
import {
|
||||||
updateOrderChangeActionsStep,
|
updateOrderChangeActionsStep,
|
||||||
updateOrderShippingMethodsStep,
|
updateOrderShippingMethodsStep,
|
||||||
@@ -162,6 +163,12 @@ export const updateOrderEditShippingMethodWorkflow = createWorkflow(
|
|||||||
OrderWorkflow.UpdateOrderEditShippingMethodWorkflowInput & AdditionalData
|
OrderWorkflow.UpdateOrderEditShippingMethodWorkflowInput & AdditionalData
|
||||||
>
|
>
|
||||||
) {
|
) {
|
||||||
|
acquireLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
timeout: 2,
|
||||||
|
ttl: 10,
|
||||||
|
})
|
||||||
|
|
||||||
const orderResult = useQueryGraphStep({
|
const orderResult = useQueryGraphStep({
|
||||||
entity: "order",
|
entity: "order",
|
||||||
fields: fieldsToRefreshOrderEdit,
|
fields: fieldsToRefreshOrderEdit,
|
||||||
@@ -274,11 +281,16 @@ export const updateOrderEditShippingMethodWorkflow = createWorkflow(
|
|||||||
updateOrderShippingMethodsStep([updateData.shippingMethod!])
|
updateOrderShippingMethodsStep([updateData.shippingMethod!])
|
||||||
)
|
)
|
||||||
|
|
||||||
return new WorkflowResponse(
|
const previewOrderChange = previewOrderChangeStep(
|
||||||
previewOrderChangeStep(input.order_id) as OrderPreviewDTO,
|
input.order_id
|
||||||
{
|
) as OrderPreviewDTO
|
||||||
|
|
||||||
|
releaseLockStep({
|
||||||
|
key: input.order_id,
|
||||||
|
})
|
||||||
|
|
||||||
|
return new WorkflowResponse(previewOrderChange, {
|
||||||
hooks: [setPricingContext] as const,
|
hooks: [setPricingContext] as const,
|
||||||
}
|
})
|
||||||
)
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
Reference in new issue
Block a user