fix(core-flows): skip locking by default on subworkflows (#13594)
This commit is contained in:
committed by
GitHub
parent
45f180a2b5
commit
1b57e5c58a
5
.changeset/cold-impalas-boil.md
Normal file
5
.changeset/cold-impalas-boil.md
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
---
|
||||||
|
"@medusajs/core-flows": patch
|
||||||
|
---
|
||||||
|
|
||||||
|
fix(core-flows): skip locking on sub workflows by default
|
||||||
@@ -89,9 +89,8 @@ export const addShippingMethodToCartWorkflow = createWorkflow(
|
|||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const cart = useRemoteQueryStep({
|
const cart = useRemoteQueryStep({
|
||||||
entry_point: "cart",
|
entry_point: "cart",
|
||||||
fields: cartFieldsForRefreshSteps,
|
fields: cartFieldsForRefreshSteps,
|
||||||
@@ -221,7 +220,6 @@ export const addShippingMethodToCartWorkflow = createWorkflow(
|
|||||||
}),
|
}),
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -124,7 +124,6 @@ export const addToCartWorkflow = createWorkflow(
|
|||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const cartQuery = useQueryGraphStep({
|
const cartQuery = useQueryGraphStep({
|
||||||
@@ -313,7 +312,11 @@ export const addToCartWorkflow = createWorkflow(
|
|||||||
)
|
)
|
||||||
|
|
||||||
refreshCartItemsWorkflow.runAsStep({
|
refreshCartItemsWorkflow.runAsStep({
|
||||||
input: { cart_id: cart.id, items: allItems, additional_data: input.additional_data },
|
input: {
|
||||||
|
cart_id: cart.id,
|
||||||
|
items: allItems,
|
||||||
|
additional_data: input.additional_data,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
parallelize(
|
parallelize(
|
||||||
@@ -323,7 +326,6 @@ export const addToCartWorkflow = createWorkflow(
|
|||||||
}),
|
}),
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,6 @@ export const createPaymentCollectionForCartWorkflow = createWorkflow(
|
|||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const cart = useRemoteQueryStep({
|
const cart = useRemoteQueryStep({
|
||||||
@@ -143,7 +142,6 @@ export const createPaymentCollectionForCartWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(created[0])
|
return new WorkflowResponse(created[0])
|
||||||
|
|||||||
@@ -1,4 +1,8 @@
|
|||||||
import { filterObjectByKeys, isDefined, PromotionActions, } from "@medusajs/framework/utils"
|
import {
|
||||||
|
filterObjectByKeys,
|
||||||
|
isDefined,
|
||||||
|
PromotionActions,
|
||||||
|
} from "@medusajs/framework/utils"
|
||||||
import {
|
import {
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
@@ -13,8 +17,15 @@ import { useRemoteQueryStep } from "../../common/steps/use-remote-query"
|
|||||||
import { acquireLockStep, releaseLockStep } from "../../locking"
|
import { acquireLockStep, releaseLockStep } from "../../locking"
|
||||||
import { getVariantPriceSetsStep, updateLineItemsStep } from "../steps"
|
import { getVariantPriceSetsStep, updateLineItemsStep } from "../steps"
|
||||||
import { validateVariantPricesStep } from "../steps/validate-variant-prices"
|
import { validateVariantPricesStep } from "../steps/validate-variant-prices"
|
||||||
import { cartFieldsForPricingContext, cartFieldsForRefreshSteps, productVariantsFields, } from "../utils/fields"
|
import {
|
||||||
import { prepareLineItemData, PrepareLineItemDataInput, } from "../utils/prepare-line-item-data"
|
cartFieldsForPricingContext,
|
||||||
|
cartFieldsForRefreshSteps,
|
||||||
|
productVariantsFields,
|
||||||
|
} from "../utils/fields"
|
||||||
|
import {
|
||||||
|
prepareLineItemData,
|
||||||
|
PrepareLineItemDataInput,
|
||||||
|
} from "../utils/prepare-line-item-data"
|
||||||
import { pricingContextResult } from "../utils/schemas"
|
import { pricingContextResult } from "../utils/schemas"
|
||||||
import { refreshCartShippingMethodsWorkflow } from "./refresh-cart-shipping-methods"
|
import { refreshCartShippingMethodsWorkflow } from "./refresh-cart-shipping-methods"
|
||||||
import { refreshPaymentCollectionForCartWorkflow } from "./refresh-payment-collection"
|
import { refreshPaymentCollectionForCartWorkflow } from "./refresh-payment-collection"
|
||||||
@@ -127,7 +138,6 @@ export const refreshCartItemsWorkflow = createWorkflow(
|
|||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const setPricingContext = createHook(
|
const setPricingContext = createHook(
|
||||||
@@ -323,7 +333,6 @@ export const refreshCartItemsWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(refetchedCart, {
|
return new WorkflowResponse(refetchedCart, {
|
||||||
|
|||||||
@@ -8,12 +8,12 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
|
import { AdditionalData } from "@medusajs/types"
|
||||||
import { useRemoteQueryStep } from "../../common"
|
import { useRemoteQueryStep } from "../../common"
|
||||||
import { acquireLockStep, releaseLockStep } from "../../locking"
|
import { acquireLockStep, releaseLockStep } from "../../locking"
|
||||||
import { removeShippingMethodFromCartStep } from "../steps"
|
import { removeShippingMethodFromCartStep } from "../steps"
|
||||||
import { updateShippingMethodsStep } from "../steps/update-shipping-methods"
|
import { updateShippingMethodsStep } from "../steps/update-shipping-methods"
|
||||||
import { listShippingOptionsForCartWithPricingWorkflow } from "./list-shipping-options-for-cart-with-pricing"
|
import { listShippingOptionsForCartWithPricingWorkflow } from "./list-shipping-options-for-cart-with-pricing"
|
||||||
import { AdditionalData } from "@medusajs/types"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The details of the cart to refresh.
|
* The details of the cart to refresh.
|
||||||
@@ -56,7 +56,11 @@ export const refreshCartShippingMethodsWorkflow = createWorkflow(
|
|||||||
name: refreshCartShippingMethodsWorkflowId,
|
name: refreshCartShippingMethodsWorkflowId,
|
||||||
idempotent: false,
|
idempotent: false,
|
||||||
},
|
},
|
||||||
(input: WorkflowData<RefreshCartShippingMethodsWorkflowInput & AdditionalData>) => {
|
(
|
||||||
|
input: WorkflowData<
|
||||||
|
RefreshCartShippingMethodsWorkflowInput & AdditionalData
|
||||||
|
>
|
||||||
|
) => {
|
||||||
const shouldExecute = transform({ input }, ({ input }) => {
|
const shouldExecute = transform({ input }, ({ input }) => {
|
||||||
return (
|
return (
|
||||||
!!input.cart_id ||
|
!!input.cart_id ||
|
||||||
@@ -104,7 +108,6 @@ export const refreshCartShippingMethodsWorkflow = createWorkflow(
|
|||||||
key: cart.id,
|
key: cart.id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const listShippingOptionsInput = transform({ cart }, ({ cart }) =>
|
const listShippingOptionsInput = transform({ cart }, ({ cart }) =>
|
||||||
@@ -134,7 +137,7 @@ export const refreshCartShippingMethodsWorkflow = createWorkflow(
|
|||||||
options: listShippingOptionsInput,
|
options: listShippingOptionsInput,
|
||||||
cart_id: cart.id,
|
cart_id: cart.id,
|
||||||
is_return: false,
|
is_return: false,
|
||||||
additional_data: input.additional_data
|
additional_data: input.additional_data,
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
@@ -206,7 +209,6 @@ export const refreshCartShippingMethodsWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|||||||
@@ -101,7 +101,6 @@ export const refreshPaymentCollectionForCartWorkflow = createWorkflow(
|
|||||||
key: cart.id,
|
key: cart.id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const validate = createHook("validate", {
|
const validate = createHook("validate", {
|
||||||
@@ -161,7 +160,6 @@ export const refreshPaymentCollectionForCartWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(void 0, {
|
return new WorkflowResponse(void 0, {
|
||||||
|
|||||||
@@ -8,11 +8,11 @@ import {
|
|||||||
WorkflowData,
|
WorkflowData,
|
||||||
WorkflowResponse,
|
WorkflowResponse,
|
||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
|
import { AdditionalData } from "@medusajs/types"
|
||||||
import { emitEventStep, useQueryGraphStep } from "../../common"
|
import { emitEventStep, useQueryGraphStep } from "../../common"
|
||||||
import { acquireLockStep, releaseLockStep } from "../../locking"
|
import { acquireLockStep, releaseLockStep } from "../../locking"
|
||||||
import { updateCartsStep } from "../steps"
|
import { updateCartsStep } from "../steps"
|
||||||
import { refreshCartItemsWorkflow } from "./refresh-cart-items"
|
import { refreshCartItemsWorkflow } from "./refresh-cart-items"
|
||||||
import { AdditionalData } from "@medusajs/types"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The cart ownership transfer details.
|
* The cart ownership transfer details.
|
||||||
@@ -108,7 +108,6 @@ export const transferCartCustomerWorkflow = createWorkflow(
|
|||||||
key: cart.id,
|
key: cart.id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const cartInput = transform({ cart, customer }, ({ cart, customer }) => [
|
const cartInput = transform({ cart, customer }, ({ cart, customer }) => [
|
||||||
@@ -122,7 +121,11 @@ export const transferCartCustomerWorkflow = createWorkflow(
|
|||||||
updateCartsStep(cartInput)
|
updateCartsStep(cartInput)
|
||||||
|
|
||||||
refreshCartItemsWorkflow.runAsStep({
|
refreshCartItemsWorkflow.runAsStep({
|
||||||
input: { cart_id: input.id, force_refresh: true, additional_data: input.additional_data },
|
input: {
|
||||||
|
cart_id: input.id,
|
||||||
|
force_refresh: true,
|
||||||
|
additional_data: input.additional_data,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
parallelize(
|
parallelize(
|
||||||
@@ -135,7 +138,6 @@ export const transferCartCustomerWorkflow = createWorkflow(
|
|||||||
}),
|
}),
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
)
|
)
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -98,7 +98,6 @@ export const updateCartPromotionsWorkflow = createWorkflow(
|
|||||||
key: cart.id,
|
key: cart.id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const validate = createHook("validate", {
|
const validate = createHook("validate", {
|
||||||
@@ -151,7 +150,6 @@ export const updateCartPromotionsWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(void 0, {
|
return new WorkflowResponse(void 0, {
|
||||||
|
|||||||
@@ -1,5 +1,13 @@
|
|||||||
import { AdditionalData, CartDTO, UpdateCartWorkflowInputDTO, } from "@medusajs/framework/types"
|
import {
|
||||||
import { CartWorkflowEvents, isDefined, MedusaError, } from "@medusajs/framework/utils"
|
AdditionalData,
|
||||||
|
CartDTO,
|
||||||
|
UpdateCartWorkflowInputDTO,
|
||||||
|
} from "@medusajs/framework/types"
|
||||||
|
import {
|
||||||
|
CartWorkflowEvents,
|
||||||
|
isDefined,
|
||||||
|
MedusaError,
|
||||||
|
} from "@medusajs/framework/utils"
|
||||||
import {
|
import {
|
||||||
createHook,
|
createHook,
|
||||||
createWorkflow,
|
createWorkflow,
|
||||||
@@ -12,7 +20,11 @@ import {
|
|||||||
import { emitEventStep, useQueryGraphStep } from "../../common"
|
import { emitEventStep, useQueryGraphStep } from "../../common"
|
||||||
import { deleteLineItemsStep } from "../../line-item"
|
import { deleteLineItemsStep } from "../../line-item"
|
||||||
import { acquireLockStep, releaseLockStep } from "../../locking"
|
import { acquireLockStep, releaseLockStep } from "../../locking"
|
||||||
import { findOrCreateCustomerStep, findSalesChannelStep, updateCartsStep, } from "../steps"
|
import {
|
||||||
|
findOrCreateCustomerStep,
|
||||||
|
findSalesChannelStep,
|
||||||
|
updateCartsStep,
|
||||||
|
} from "../steps"
|
||||||
import { validateSalesChannelStep } from "../steps/validate-sales-channel"
|
import { validateSalesChannelStep } from "../steps/validate-sales-channel"
|
||||||
import { refreshCartItemsWorkflow } from "./refresh-cart-items"
|
import { refreshCartItemsWorkflow } from "./refresh-cart-items"
|
||||||
|
|
||||||
@@ -76,7 +88,6 @@ export const updateCartWorkflow = createWorkflow(
|
|||||||
key: input.id,
|
key: input.id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const { data: cartToUpdate } = useQueryGraphStep({
|
const { data: cartToUpdate } = useQueryGraphStep({
|
||||||
@@ -308,7 +319,6 @@ export const updateCartWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: input.id,
|
key: input.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
return new WorkflowResponse(void 0, {
|
return new WorkflowResponse(void 0, {
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ import {
|
|||||||
} from "@medusajs/framework/workflows-sdk"
|
} from "@medusajs/framework/workflows-sdk"
|
||||||
import { useQueryGraphStep } from "../../common"
|
import { useQueryGraphStep } from "../../common"
|
||||||
import { emitEventStep } from "../../common/steps/emit-event"
|
import { emitEventStep } from "../../common/steps/emit-event"
|
||||||
|
import { deleteLineItemsWorkflow } from "../../line-item"
|
||||||
import { updateLineItemsStepWithSelector } from "../../line-item/steps"
|
import { updateLineItemsStepWithSelector } from "../../line-item/steps"
|
||||||
import { acquireLockStep, releaseLockStep } from "../../locking"
|
import { acquireLockStep, releaseLockStep } from "../../locking"
|
||||||
import { validateCartStep } from "../steps/validate-cart"
|
import { validateCartStep } from "../steps/validate-cart"
|
||||||
@@ -37,7 +38,6 @@ import { requiredVariantFieldsForInventoryConfirmation } from "../utils/prepare-
|
|||||||
import { pricingContextResult } from "../utils/schemas"
|
import { pricingContextResult } from "../utils/schemas"
|
||||||
import { confirmVariantInventoryWorkflow } from "./confirm-variant-inventory"
|
import { confirmVariantInventoryWorkflow } from "./confirm-variant-inventory"
|
||||||
import { refreshCartItemsWorkflow } from "./refresh-cart-items"
|
import { refreshCartItemsWorkflow } from "./refresh-cart-items"
|
||||||
import { deleteLineItemsWorkflow } from "../../line-item"
|
|
||||||
|
|
||||||
const cartFields = cartFieldsForPricingContext.concat(["items.*"])
|
const cartFields = cartFieldsForPricingContext.concat(["items.*"])
|
||||||
const variantFields = productVariantsFields.concat(["calculated_price.*"])
|
const variantFields = productVariantsFields.concat(["calculated_price.*"])
|
||||||
@@ -120,7 +120,6 @@ export const updateLineItemInCartWorkflow = createWorkflow(
|
|||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const { data: cart } = useQueryGraphStep({
|
const { data: cart } = useQueryGraphStep({
|
||||||
@@ -304,14 +303,16 @@ export const updateLineItemInCartWorkflow = createWorkflow(
|
|||||||
updateLineItemsStepWithSelector(lineItemUpdate)
|
updateLineItemsStepWithSelector(lineItemUpdate)
|
||||||
|
|
||||||
refreshCartItemsWorkflow.runAsStep({
|
refreshCartItemsWorkflow.runAsStep({
|
||||||
input: { cart_id: input.cart_id, additional_data: input.additional_data },
|
input: {
|
||||||
|
cart_id: input.cart_id,
|
||||||
|
additional_data: input.additional_data,
|
||||||
|
},
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
parallelize(
|
parallelize(
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
}),
|
}),
|
||||||
emitEventStep({
|
emitEventStep({
|
||||||
eventName: CartWorkflowEvents.UPDATED,
|
eventName: CartWorkflowEvents.UPDATED,
|
||||||
|
|||||||
@@ -144,7 +144,6 @@ export const updateTaxLinesWorkflow = createWorkflow(
|
|||||||
key: cart.id,
|
key: cart.id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
const taxLineItems = getItemTaxLinesStep(
|
const taxLineItems = getItemTaxLinesStep(
|
||||||
@@ -164,7 +163,6 @@ export const updateTaxLinesWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: cart.id,
|
key: cart.id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
import { createWorkflow, WorkflowData } from "@medusajs/framework/workflows-sdk"
|
import { createWorkflow, WorkflowData } from "@medusajs/framework/workflows-sdk"
|
||||||
|
import { AdditionalData } from "@medusajs/types"
|
||||||
import { refreshCartItemsWorkflow } from "../../cart/workflows/refresh-cart-items"
|
import { refreshCartItemsWorkflow } from "../../cart/workflows/refresh-cart-items"
|
||||||
import { acquireLockStep, releaseLockStep } from "../../locking"
|
import { acquireLockStep, releaseLockStep } from "../../locking"
|
||||||
import { deleteLineItemsStep } from "../steps/delete-line-items"
|
import { deleteLineItemsStep } from "../steps/delete-line-items"
|
||||||
import { AdditionalData } from "@medusajs/types"
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The data to delete line items from a cart.
|
* The data to delete line items from a cart.
|
||||||
@@ -49,7 +49,6 @@ export const deleteLineItemsWorkflow = createWorkflow(
|
|||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
timeout: 2,
|
timeout: 2,
|
||||||
ttl: 10,
|
ttl: 10,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
|
|
||||||
deleteLineItemsStep(input.ids)
|
deleteLineItemsStep(input.ids)
|
||||||
@@ -60,7 +59,6 @@ export const deleteLineItemsWorkflow = createWorkflow(
|
|||||||
|
|
||||||
releaseLockStep({
|
releaseLockStep({
|
||||||
key: input.cart_id,
|
key: input.cart_id,
|
||||||
skipOnSubWorkflow: true,
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -12,18 +12,18 @@ export interface AcquireLockStepInput {
|
|||||||
key: string | string[]
|
key: string | string[]
|
||||||
/**
|
/**
|
||||||
* The maximum time to wait for acquiring the lock. If the lock cannot be acquired within this time, an error is thrown.
|
* The maximum time to wait for acquiring the lock. If the lock cannot be acquired within this time, an error is thrown.
|
||||||
*
|
*
|
||||||
* @defaultValue 0
|
* @defaultValue 0
|
||||||
*/
|
*/
|
||||||
timeout?: number
|
timeout?: number
|
||||||
/**
|
/**
|
||||||
* The time (in seconds) to wait between each retry to acquire the lock.
|
* The time (in seconds) to wait between each retry to acquire the lock.
|
||||||
*
|
*
|
||||||
* @defaultValue 0.3
|
* @defaultValue 0.3
|
||||||
*/
|
*/
|
||||||
retryInterval?: number
|
retryInterval?: number
|
||||||
/**
|
/**
|
||||||
* The expiration time (in seconds) for the lock. If the lock is already acquired and the owner is the same,
|
* The expiration time (in seconds) for the lock. If the lock is already acquired and the owner is the same,
|
||||||
* the expiration time is extended by the value passed. If not specified, the lock does not expire.
|
* the expiration time is extended by the value passed. If not specified, the lock does not expire.
|
||||||
*/
|
*/
|
||||||
ttl?: number
|
ttl?: number
|
||||||
@@ -32,11 +32,11 @@ export interface AcquireLockStepInput {
|
|||||||
*/
|
*/
|
||||||
ownerId?: string
|
ownerId?: string
|
||||||
/**
|
/**
|
||||||
* The provider name to use for locking. If no provider is passed, the default provider
|
* The provider name to use for locking. If no provider is passed, the default provider
|
||||||
* (in-memory or the provider configured in medusa-config.ts) will be used.
|
* (in-memory or the provider configured in medusa-config.ts) will be used.
|
||||||
*/
|
*/
|
||||||
provider?: string
|
provider?: string
|
||||||
skipOnSubWorkflow?: boolean
|
executeOnSubWorkflow?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const acquireLockStepId = "acquire-lock-step"
|
export const acquireLockStepId = "acquire-lock-step"
|
||||||
@@ -67,7 +67,7 @@ export const acquireLockStep = createStep(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isSubWorkflow = !!parentStepIdempotencyKey
|
const isSubWorkflow = !!parentStepIdempotencyKey
|
||||||
if (isSubWorkflow && data.skipOnSubWorkflow) {
|
if (isSubWorkflow && !data.executeOnSubWorkflow) {
|
||||||
return StepResponse.skip() as any
|
return StepResponse.skip() as any
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,16 +10,16 @@ export interface ReleaseLockStepInput {
|
|||||||
*/
|
*/
|
||||||
key: string | string[]
|
key: string | string[]
|
||||||
/**
|
/**
|
||||||
* The ID of the lock's owner. The lock can be released either if it doesn't have an owner,
|
* The ID of the lock's owner. The lock can be released either if it doesn't have an owner,
|
||||||
* or if its owner ID matches the one passed in this property.
|
* or if its owner ID matches the one passed in this property.
|
||||||
*/
|
*/
|
||||||
ownerId?: string
|
ownerId?: string
|
||||||
/**
|
/**
|
||||||
* The provider name to use for locking. If no provider is passed,
|
* The provider name to use for locking. If no provider is passed,
|
||||||
* the default provider (in-memory or the provider configured in medusa-config.ts) will be used.
|
* the default provider (in-memory or the provider configured in medusa-config.ts) will be used.
|
||||||
*/
|
*/
|
||||||
provider?: string
|
provider?: string
|
||||||
skipOnSubWorkflow?: boolean
|
executeOnSubWorkflow?: boolean
|
||||||
}
|
}
|
||||||
|
|
||||||
export const releaseLockStepId = "release-lock-step"
|
export const releaseLockStepId = "release-lock-step"
|
||||||
@@ -49,7 +49,7 @@ export const releaseLockStep = createStep(
|
|||||||
}
|
}
|
||||||
|
|
||||||
const isSubWorkflow = !!parentStepIdempotencyKey
|
const isSubWorkflow = !!parentStepIdempotencyKey
|
||||||
if (isSubWorkflow && data.skipOnSubWorkflow) {
|
if (isSubWorkflow && !data.executeOnSubWorkflow) {
|
||||||
return StepResponse.skip() as any
|
return StepResponse.skip() as any
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user