fix(core-flows,order): update action (#8333)

This commit is contained in:
Carlos R. L. Rodrigues
2024-07-29 12:51:51 -03:00
committed by GitHub
parent 42c80e4264
commit ed67d44d28
19 changed files with 124 additions and 36 deletions

View File

@@ -4,10 +4,11 @@ import {
UpdateOrderChangeDTO,
} from "@medusajs/types"
import {
getSelectsAndRelationsFromObjectArray,
ModuleRegistrationName,
deduplicate,
getSelectsAndRelationsFromObjectArray,
} from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const cancelOrderChangeStepId = "cancel-order-change"
export const cancelOrderChangeStep = createStep(
@@ -22,8 +23,18 @@ export const cancelOrderChangeStep = createStep(
{ objectFields: ["metadata"] }
)
selects.push(
"order_id",
"return_id",
"claim_id",
"exchange_id",
"version",
"canceled_at",
"cancelled_by"
)
const dataBeforeUpdate = await service.retrieveOrderChange(data.id, {
select: [...selects, "canceled_at"],
select: deduplicate(selects),
relations,
})

View File

@@ -2,14 +2,14 @@ import { IOrderModuleService, OrderChangeActionDTO } from "@medusajs/types"
import { ChangeActionType, ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type CreateOrderClaimItemsInput = {
type CreateOrderClaimItemsFromActionsInput = {
changes: OrderChangeActionDTO[]
claimId: string
}
export const createOrderClaimItemsStep = createStep(
"create-claim-items",
async (input: CreateOrderClaimItemsInput, { container }) => {
export const createOrderClaimItemsFromActionsStep = createStep(
"create-claim-items-from-change-actions",
async (input: CreateOrderClaimItemsFromActionsInput, { container }) => {
const orderModuleService = container.resolve<IOrderModuleService>(
ModuleRegistrationName.ORDER
)

View File

@@ -6,14 +6,14 @@ import {
import { ModuleRegistrationName } from "@medusajs/utils"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
type CreateReturnItemsInput = {
type CreateReturnItemsFromActionsInput = {
changes: OrderChangeActionDTO[]
returnId: string
}
export const createReturnItemsStep = createStep(
"create-return-items",
async (input: CreateReturnItemsInput, { container }) => {
export const createReturnItemsFromActionsStep = createStep(
"create-return-items-from-change-actions",
async (input: CreateReturnItemsFromActionsInput, { container }) => {
const orderModuleService = container.resolve<IOrderModuleService>(
ModuleRegistrationName.ORDER
)

View File

@@ -4,10 +4,11 @@ import {
UpdateOrderChangeDTO,
} from "@medusajs/types"
import {
getSelectsAndRelationsFromObjectArray,
ModuleRegistrationName,
deduplicate,
getSelectsAndRelationsFromObjectArray,
} from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const declineOrderChangeStepId = "decline-order-change"
export const declineOrderChangeStep = createStep(
@@ -21,9 +22,19 @@ export const declineOrderChangeStep = createStep(
[data],
{ objectFields: ["metadata"] }
)
selects.push(
"order_id",
"return_id",
"claim_id",
"exchange_id",
"version",
"declined_at",
"declined_by",
"declined_reason"
)
const dataBeforeUpdate = await service.retrieveOrderChange(data.id, {
select: [...selects, "declined_at"],
select: deduplicate(selects),
relations,
})

View File

@@ -5,7 +5,7 @@ export * from "./cancel-order-change"
export * from "./cancel-orders"
export * from "./cancel-return"
export * from "./complete-orders"
export * from "./create-claim-items"
export * from "./create-claim-items-from-actions"
export * from "./create-claims"
export * from "./create-complete-return"
export * from "./create-exchanges"

View File

@@ -3,10 +3,11 @@ import {
UpdateOrderChangeActionDTO,
} from "@medusajs/types"
import {
getSelectsAndRelationsFromObjectArray,
ModuleRegistrationName,
deduplicate,
getSelectsAndRelationsFromObjectArray,
} from "@medusajs/utils"
import { createStep, StepResponse } from "@medusajs/workflows-sdk"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const updateOrderChangeActionsStepId = "update-order-change-actions"
export const updateOrderChangeActionsStep = createStep(
@@ -17,11 +18,20 @@ export const updateOrderChangeActionsStep = createStep(
)
const { selects, relations } = getSelectsAndRelationsFromObjectArray(data, {
objectFields: ["metadata"],
objectFields: ["metadata", "details"],
})
selects.push(
"order_id",
"return_id",
"claim_id",
"exchange_id",
"version",
"order_change_id"
)
const dataBeforeUpdate = await service.listOrderChangeActions(
{ id: data.map((d) => d.id) },
{ relations, select: selects }
{ relations, select: deduplicate(selects) }
)
const updated = await service.updateOrderChangeActions(data)

View File

@@ -19,8 +19,8 @@ import { createFulfillmentWorkflow } from "../../../fulfillment/workflows/create
import { createReturnFulfillmentWorkflow } from "../../../fulfillment/workflows/create-return-fulfillment"
import { previewOrderChangeStep } from "../../steps"
import { confirmOrderChanges } from "../../steps/confirm-order-changes"
import { createOrderClaimItemsStep } from "../../steps/create-claim-items"
import { createReturnItemsStep } from "../../steps/create-return-items"
import { createOrderClaimItemsFromActionsStep } from "../../steps/create-claim-items-from-actions"
import { createReturnItemsFromActionsStep } from "../../steps/create-return-items-from-actions"
import {
throwIfIsCancelled,
throwIfOrderChangeIsNotActive,
@@ -227,8 +227,8 @@ export const confirmClaimRequestWorkflow = createWorkflow(
const orderPreview = previewOrderChangeStep(order.id)
const [createClaimItems, createdReturnItems] = parallelize(
createOrderClaimItemsStep(claimItems),
createReturnItemsStep(returnItems),
createOrderClaimItemsFromActionsStep(claimItems),
createReturnItemsFromActionsStep(returnItems),
confirmOrderChanges({ changes: [orderChange], orderId: order.id })
)

View File

@@ -16,7 +16,7 @@ import { createRemoteLinkStep, useRemoteQueryStep } from "../../../common"
import { createReturnFulfillmentWorkflow } from "../../../fulfillment/workflows/create-return-fulfillment"
import { previewOrderChangeStep } from "../../steps"
import { confirmOrderChanges } from "../../steps/confirm-order-changes"
import { createReturnItemsStep } from "../../steps/create-return-items"
import { createReturnItemsFromActionsStep } from "../../steps/create-return-items-from-actions"
import {
throwIfIsCancelled,
throwIfOrderChangeIsNotActive,
@@ -111,15 +111,12 @@ function extractReturnShippingOptionId({ orderPreview, orderReturn }) {
continue
}
for (const action of modifiedShippingMethod_.actions) {
if (
returnShippingMethod = modifiedShippingMethod_.actions.find((action) => {
return (
action.action === ChangeActionType.SHIPPING_ADD &&
action.return_id === orderReturn.id
) {
returnShippingMethod = shippingMethod
break
}
}
)
})
}
return returnShippingMethod.shipping_option_id
}
@@ -184,7 +181,7 @@ export const confirmReturnRequestWorkflow = createWorkflow(
const orderPreview = previewOrderChangeStep(order.id)
const createdReturnItems = createReturnItemsStep({
const createdReturnItems = createReturnItemsFromActionsStep({
returnId: orderReturn.id,
changes: returnItemActions,
})