Feat(order): return reason and transaction methods (#7303)
This commit is contained in:
1 parent
8958214350
commit
6c94d0205c
23 files changed
+1036
-6
No files matched your search
@@ -8,7 +8,7 @@ import {
|
||||
getSelectsAndRelationsFromObjectArray,
|
||||
promiseAll,
|
||||
} from "@medusajs/utils"
|
||||
import { createStep, StepResponse } from "@medusajs/workflows-sdk"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
|
||||
type UpdateCustomerGroupStepInput = {
|
||||
selector: FilterableCustomerGroupProps
|
||||
@@ -51,6 +51,7 @@ export const updateCustomerGroupsStep = createStep(
|
||||
prevCustomerGroups.map((c) =>
|
||||
service.updateCustomerGroups(c.id, {
|
||||
name: c.name,
|
||||
metadata: c.metadata,
|
||||
})
|
||||
)
|
||||
)
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
export * from "./workflows"
|
||||
export * from "./steps"
|
||||
@@ -0,0 +1,36 @@
|
||||
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
|
||||
import {
|
||||
CreateOrderReturnReasonDTO,
|
||||
IOrderModuleService,
|
||||
} from "@medusajs/types"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
|
||||
export const createReturnReasonsStepId = "create-return-reasons"
|
||||
export const createReturnReasonsStep = createStep(
|
||||
createReturnReasonsStepId,
|
||||
async (data: CreateOrderReturnReasonDTO[], { container }) => {
|
||||
const service = container.resolve<IOrderModuleService>(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
const createdReturnReasons = await service.createReturnReasons(data)
|
||||
|
||||
return new StepResponse(
|
||||
createdReturnReasons,
|
||||
createdReturnReasons.map(
|
||||
(createdReturnReasons) => createdReturnReasons.id
|
||||
)
|
||||
)
|
||||
},
|
||||
async (createdReturnReasonIds, { container }) => {
|
||||
if (!createdReturnReasonIds?.length) {
|
||||
return
|
||||
}
|
||||
|
||||
const service = container.resolve<IOrderModuleService>(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
await service.deleteReturnReasons(createdReturnReasonIds)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,30 @@
|
||||
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
|
||||
import { IOrderModuleService } from "@medusajs/types"
|
||||
import { createStep, StepResponse } from "@medusajs/workflows-sdk"
|
||||
|
||||
type DeleteReturnReasonStepInput = string[]
|
||||
|
||||
export const deleteReturnReasonStepId = "delete-return-reasons"
|
||||
export const deleteReturnReasonStep = createStep(
|
||||
deleteReturnReasonStepId,
|
||||
async (ids: DeleteReturnReasonStepInput, { container }) => {
|
||||
const service = container.resolve<IOrderModuleService>(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
await service.softDeleteReturnReasons(ids)
|
||||
|
||||
return new StepResponse(void 0, ids)
|
||||
},
|
||||
async (prevReturnReasons, { container }) => {
|
||||
if (!prevReturnReasons) {
|
||||
return
|
||||
}
|
||||
|
||||
const service = container.resolve<IOrderModuleService>(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
await service.restoreReturnReasons(prevReturnReasons)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,3 @@
|
||||
export * from "./create-return-reasons"
|
||||
export * from "./delete-return-reasons"
|
||||
export * from "./update-return-resons"
|
||||
@@ -0,0 +1,61 @@
|
||||
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
|
||||
import {
|
||||
FilterableOrderReturnReasonProps,
|
||||
IOrderModuleService,
|
||||
ReturnReasonUpdatableFields,
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
getSelectsAndRelationsFromObjectArray,
|
||||
promiseAll,
|
||||
} from "@medusajs/utils"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
|
||||
type UpdateReturnReasonStepInput = {
|
||||
selector: FilterableOrderReturnReasonProps
|
||||
update: ReturnReasonUpdatableFields
|
||||
}
|
||||
|
||||
export const updateReturnReasonStepId = "update-return-reasons"
|
||||
export const updateReturnReasonsStep = createStep(
|
||||
updateReturnReasonStepId,
|
||||
async (data: UpdateReturnReasonStepInput, { container }) => {
|
||||
const service = container.resolve<IOrderModuleService>(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
const { selects, relations } = getSelectsAndRelationsFromObjectArray([
|
||||
data.update,
|
||||
])
|
||||
const prevReturnReasons = await service.listReturnReasons(data.selector, {
|
||||
select: selects,
|
||||
relations,
|
||||
})
|
||||
|
||||
const reasons = await service.updateReturnReasons(
|
||||
data.selector,
|
||||
data.update
|
||||
)
|
||||
|
||||
return new StepResponse(reasons, prevReturnReasons)
|
||||
},
|
||||
async (prevReturnReasons, { container }) => {
|
||||
if (!prevReturnReasons) {
|
||||
return
|
||||
}
|
||||
|
||||
const service = container.resolve<IOrderModuleService>(
|
||||
ModuleRegistrationName.ORDER
|
||||
)
|
||||
|
||||
await promiseAll(
|
||||
prevReturnReasons.map((c) =>
|
||||
service.updateReturnReasons(c.id, {
|
||||
value: c.value,
|
||||
label: c.label,
|
||||
description: c.description,
|
||||
metadata: c.metadata,
|
||||
})
|
||||
)
|
||||
)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
CreateOrderReturnReasonDTO,
|
||||
OrderReturnReasonDTO,
|
||||
} from "@medusajs/types"
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { createReturnReasonsStep } from "../steps"
|
||||
|
||||
type WorkflowInput = { data: CreateOrderReturnReasonDTO[] }
|
||||
|
||||
export const createReturnReasonsWorkflowId = "create-return-reasons"
|
||||
export const createReturnReasonsWorkflow = createWorkflow(
|
||||
createReturnReasonsWorkflowId,
|
||||
(
|
||||
input: WorkflowData<WorkflowInput>
|
||||
): WorkflowData<OrderReturnReasonDTO[]> => {
|
||||
return createReturnReasonsStep(input.data)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,12 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { deleteReturnReasonStep } from "../steps"
|
||||
|
||||
type WorkflowInput = { ids: string[] }
|
||||
|
||||
export const deleteReturnReasonsWorkflowId = "delete-return-reasons"
|
||||
export const deleteReturnReasonsWorkflow = createWorkflow(
|
||||
deleteReturnReasonsWorkflowId,
|
||||
(input: WorkflowData<WorkflowInput>): WorkflowData<void> => {
|
||||
return deleteReturnReasonStep(input.ids)
|
||||
}
|
||||
)
|
||||
@@ -0,0 +1,3 @@
|
||||
export * from "./create-return-reasons"
|
||||
export * from "./delete-return-reasons"
|
||||
export * from "./update-return-reasons"
|
||||
@@ -0,0 +1,22 @@
|
||||
import {
|
||||
FilterableOrderReturnReasonProps,
|
||||
OrderReturnReasonDTO,
|
||||
ReturnReasonUpdatableFields,
|
||||
} from "@medusajs/types"
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
import { updateReturnReasonsStep } from "../steps"
|
||||
|
||||
type WorkflowInput = {
|
||||
selector: FilterableOrderReturnReasonProps
|
||||
update: ReturnReasonUpdatableFields
|
||||
}
|
||||
|
||||
export const updateReturnReasonsWorkflowId = "update-return-reasons"
|
||||
export const updateReturnReasonsWorkflow = createWorkflow(
|
||||
updateReturnReasonsWorkflowId,
|
||||
(
|
||||
input: WorkflowData<WorkflowInput>
|
||||
): WorkflowData<OrderReturnReasonDTO[]> => {
|
||||
return updateReturnReasonsStep(input)
|
||||
}
|
||||
)
|
||||
Reference in new issue
Block a user