feature: add workflows hooks to the order module (#8496)

This commit is contained in:
Harminder Virk
2024-08-08 16:25:11 +05:30
committed by GitHub
parent 3259b9204c
commit 08764e3965
14 changed files with 163 additions and 71 deletions

View File

@@ -1,3 +1,4 @@
import { AdditionalData } from "@medusajs/types"
import { completeOrderWorkflow } from "@medusajs/core-flows"
import {
ContainerRegistrationKeys,
@@ -10,14 +11,17 @@ import {
import { AdminCompleteOrderType } from "../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminCompleteOrderType>,
req: AuthenticatedMedusaRequest<AdminCompleteOrderType & AdditionalData>,
res: MedusaResponse
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
const { id } = req.params
await completeOrderWorkflow(req.scope).run({
input: { orderIds: [req.validatedBody.order_id] },
input: {
orderIds: [req.validatedBody.order_id],
additional_data: req.validatedBody.additional_data,
},
})
const queryObject = remoteQueryObjectFromString({

View File

@@ -8,9 +8,12 @@ import {
MedusaResponse,
} from "../../../../../../../types/routing"
import { AdminOrderCancelFulfillmentType } from "../../../../validators"
import { AdditionalData } from "@medusajs/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminOrderCancelFulfillmentType>,
req: AuthenticatedMedusaRequest<
AdminOrderCancelFulfillmentType & AdditionalData
>,
res: MedusaResponse
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -8,9 +8,12 @@ import {
MedusaResponse,
} from "../../../../../../../types/routing"
import { AdminOrderCreateShipmentType } from "../../../../validators"
import { AdditionalData } from "@medusajs/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminOrderCreateShipmentType>,
req: AuthenticatedMedusaRequest<
AdminOrderCreateShipmentType & AdditionalData
>,
res: MedusaResponse
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -8,9 +8,12 @@ import {
MedusaResponse,
} from "../../../../../types/routing"
import { AdminOrderCreateFulfillmentType } from "../../validators"
import { AdditionalData } from "@medusajs/types"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminOrderCreateFulfillmentType>,
req: AuthenticatedMedusaRequest<
AdminOrderCreateFulfillmentType & AdditionalData
>,
res: MedusaResponse
) => {
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)

View File

@@ -3,6 +3,7 @@ import {
createFindParams,
createOperatorMap,
createSelectParams,
WithAdditionalData,
} from "../../utils/validators"
export const AdminGetOrdersOrderParams = createSelectParams().merge(
@@ -42,26 +43,29 @@ export const AdminArchiveOrder = z.object({
})
export type AdminArchiveOrderType = z.infer<typeof AdminArchiveOrder>
export const AdminCompleteOrder = z.object({
export type AdminCompleteOrderType = z.infer<typeof CompleteOrder>
export const CompleteOrder = z.object({
order_id: z.string(),
})
export type AdminCompleteOrderType = z.infer<typeof AdminArchiveOrder>
export const AdminCompleteOrder = WithAdditionalData(CompleteOrder)
const Item = z.object({
id: z.string(),
quantity: z.number(),
})
export const AdminOrderCreateFulfillment = z.object({
export type AdminOrderCreateFulfillmentType = z.infer<
typeof OrderCreateFulfillment
>
export const OrderCreateFulfillment = z.object({
items: z.array(Item),
location_id: z.string().nullish(),
no_notification: z.boolean().optional(),
metadata: z.record(z.unknown()).nullish(),
})
export type AdminOrderCreateFulfillmentType = z.infer<
typeof AdminOrderCreateFulfillment
>
export const AdminOrderCreateFulfillment = WithAdditionalData(
OrderCreateFulfillment
)
const Label = z.object({
tracking_number: z.string(),
@@ -69,21 +73,21 @@ const Label = z.object({
label_url: z.string(),
})
export const AdminOrderCreateShipment = z.object({
export type AdminOrderCreateShipmentType = z.infer<typeof OrderCreateShipment>
export const OrderCreateShipment = z.object({
items: z.array(Item),
labels: z.array(Label).optional(),
no_notification: z.boolean().optional(),
metadata: z.record(z.unknown()).nullish(),
})
export type AdminOrderCreateShipmentType = z.infer<
typeof AdminOrderCreateShipment
>
export const AdminOrderCancelFulfillment = z.object({
no_notification: z.boolean().optional(),
})
export const AdminOrderCreateShipment = WithAdditionalData(OrderCreateShipment)
export type AdminOrderCancelFulfillmentType = z.infer<
typeof AdminOrderCancelFulfillment
typeof OrderCancelFulfillment
>
export const OrderCancelFulfillment = z.object({
no_notification: z.boolean().optional(),
})
export const AdminOrderCancelFulfillment = WithAdditionalData(
OrderCancelFulfillment
)