feat(medusa, core-flows): add ppdate inventory item endpoint (#6735)
* init update inventory item * prep for pr
This commit is contained in:
@@ -5,4 +5,5 @@ export * from "./create-inventory-items"
|
||||
export * from "./validate-singular-inventory-items-for-tags"
|
||||
export * from "./create-inventory-levels"
|
||||
export * from "./validate-inventory-locations"
|
||||
export * from "./update-inventory-items"
|
||||
export * from "./delete-inventory-levels"
|
||||
|
||||
@@ -0,0 +1,49 @@
|
||||
import { IInventoryServiceNext, InventoryNext } from "@medusajs/types"
|
||||
import { StepResponse, createStep } from "@medusajs/workflows-sdk"
|
||||
import {
|
||||
convertItemResponseToUpdateRequest,
|
||||
getSelectsAndRelationsFromObjectArray,
|
||||
} from "@medusajs/utils"
|
||||
|
||||
import { ModuleRegistrationName } from "@medusajs/modules-sdk"
|
||||
|
||||
export const updateInventoryItemsStepId = "update-inventory-items-step"
|
||||
export const updateInventoryItemsStep = createStep(
|
||||
updateInventoryItemsStepId,
|
||||
async (input: InventoryNext.UpdateInventoryItemInput[], { container }) => {
|
||||
const inventoryService = container.resolve<IInventoryServiceNext>(
|
||||
ModuleRegistrationName.INVENTORY
|
||||
)
|
||||
const { selects, relations } = getSelectsAndRelationsFromObjectArray(input)
|
||||
|
||||
const dataBeforeUpdate = await inventoryService.list(
|
||||
{ id: input.map(({ id }) => id) },
|
||||
{}
|
||||
)
|
||||
|
||||
const updatedInventoryItems = await inventoryService.update(input)
|
||||
|
||||
return new StepResponse(updatedInventoryItems, {
|
||||
dataBeforeUpdate,
|
||||
selects,
|
||||
relations,
|
||||
})
|
||||
},
|
||||
async (revertInput, { container }) => {
|
||||
if (!revertInput?.dataBeforeUpdate?.length) {
|
||||
return
|
||||
}
|
||||
|
||||
const { dataBeforeUpdate, selects, relations } = revertInput
|
||||
|
||||
const inventoryService = container.resolve<IInventoryServiceNext>(
|
||||
ModuleRegistrationName.INVENTORY
|
||||
)
|
||||
|
||||
await inventoryService.update(
|
||||
dataBeforeUpdate.map((data) =>
|
||||
convertItemResponseToUpdateRequest(data, selects, relations)
|
||||
)
|
||||
)
|
||||
}
|
||||
)
|
||||
@@ -1,4 +1,5 @@
|
||||
export * from "./delete-inventory-items"
|
||||
export * from "./create-inventory-items"
|
||||
export * from "./create-inventory-levels"
|
||||
export * from "./update-inventory-items"
|
||||
export * from "./delete-inventory-levels"
|
||||
|
||||
@@ -0,0 +1,17 @@
|
||||
import { WorkflowData, createWorkflow } from "@medusajs/workflows-sdk"
|
||||
|
||||
import { InventoryNext } from "@medusajs/types"
|
||||
import { updateInventoryItemsStep } from "../steps"
|
||||
|
||||
interface WorkflowInput {
|
||||
updates: InventoryNext.UpdateInventoryItemInput[]
|
||||
}
|
||||
export const updateInventoryItemsWorkflowId = "update-inventory-items-workflow"
|
||||
export const updateInventoryItemsWorkflow = createWorkflow(
|
||||
updateInventoryItemsWorkflowId,
|
||||
(
|
||||
input: WorkflowData<WorkflowInput>
|
||||
): WorkflowData<InventoryNext.InventoryItemDTO[]> => {
|
||||
return updateInventoryItemsStep(input.updates)
|
||||
}
|
||||
)
|
||||
Reference in New Issue
Block a user