feat(cart): POST /store/carts (#6273)

Depends on #6262
This commit is contained in:
Oli Juhl
2024-02-05 16:15:15 +01:00
committed by GitHub
parent 884428a1b5
commit ede221d4f7
13 changed files with 199 additions and 3 deletions
@@ -1 +1,4 @@
export * from "./create-cart"
export * from "./steps"
export * from "./workflows"
@@ -0,0 +1,31 @@
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
import { CreateCartDTO, ICartModuleService } from "@medusajs/types"
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
export const createCartsStepId = "create-carts"
export const createCartsStep = createStep(
createCartsStepId,
async (data: CreateCartDTO[], { container }) => {
const service = container.resolve<ICartModuleService>(
ModuleRegistrationName.CART
)
const createdCarts = await service.create(data)
return new StepResponse(
createdCarts,
createdCarts.map((cart) => cart.id)
)
},
async (createdCartsIds, { container }) => {
if (!createdCartsIds?.length) {
return
}
const service = container.resolve<ICartModuleService>(
ModuleRegistrationName.CART
)
await service.delete(createdCartsIds)
}
)
@@ -0,0 +1,2 @@
export * from "./create-carts";
@@ -0,0 +1,13 @@
import { CartDTO, CreateCartDTO } from "@medusajs/types"
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
import { createCartsStep } from "../steps"
type WorkflowInput = { cartData: CreateCartDTO[] }
export const createCartsWorkflowId = "create-carts"
export const createCartsWorkflow = createWorkflow(
createCartsWorkflowId,
(input: WorkflowData<WorkflowInput>): WorkflowData<CartDTO[]> => {
return createCartsStep(input.cartData)
}
)
@@ -0,0 +1,2 @@
export * from "./create-carts";