feat(medusa,core-flows,types,js-sdk): decline / cancel order transfer (#10202)

**What**
- **core-flows**: 
  - cancel transfer
  - decline transfer
- **API**:
  - admin cancel transfer
  - store decline transfer 
  - store cancel transfer
- **js-sdk**:
  - add methods for store endpoints 

---

CLOSES CMRC-726
This commit is contained in:
Frane Polić
2024-11-25 08:44:31 +01:00
committed by GitHub
parent 96b8963a6c
commit b12408dbd8
21 changed files with 910 additions and 45 deletions

View File

@@ -0,0 +1,34 @@
import { cancelOrderTransferRequestWorkflow } from "@medusajs/core-flows"
import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "@medusajs/framework/http"
import { AdminOrder, HttpTypes } from "@medusajs/framework/types"
import { AdminCancelOrderTransferRequestType } from "../../../validators"
import { ContainerRegistrationKeys } from "@medusajs/framework/utils"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminCancelOrderTransferRequestType>,
res: MedusaResponse<HttpTypes.AdminOrderResponse>
) => {
const query = req.scope.resolve(ContainerRegistrationKeys.QUERY)
const orderId = req.params.id
const userId = req.auth_context.actor_id
await cancelOrderTransferRequestWorkflow(req.scope).run({
input: {
order_id: orderId,
logged_in_user_id: userId,
actor_type: req.auth_context.actor_type as "user",
},
})
const result = await query.graph({
entity: "order",
filters: { id: orderId },
fields: req.remoteQueryConfig.fields,
})
res.status(200).json({ order: result.data[0] as AdminOrder })
}

View File

@@ -5,13 +5,14 @@ import {
import { MiddlewareRoute } from "@medusajs/framework/http"
import * as QueryConfig from "./query-config"
import {
AdminCancelOrderTransferRequest,
AdminCompleteOrder,
AdminGetOrdersOrderItemsParams,
AdminGetOrdersOrderParams,
AdminGetOrdersParams,
AdminMarkOrderFulfillmentDelivered,
AdminOrderCancelFulfillment,
AdminOrderChanges,
AdminOrderChangesParams,
AdminOrderCreateFulfillment,
AdminOrderCreateShipment,
AdminTransferOrder,
@@ -53,7 +54,7 @@ export const adminOrderRoutesMiddlewares: MiddlewareRoute[] = [
matcher: "/admin/orders/:id/changes",
middlewares: [
validateAndTransformQuery(
AdminOrderChanges,
AdminOrderChangesParams,
QueryConfig.retrieveOrderChangesTransformQueryConfig
),
],
@@ -156,4 +157,15 @@ export const adminOrderRoutesMiddlewares: MiddlewareRoute[] = [
),
],
},
{
method: ["POST"],
matcher: "/admin/orders/:id/transfer/cancel",
middlewares: [
validateAndTransformBody(AdminCancelOrderTransferRequest),
validateAndTransformQuery(
AdminGetOrdersOrderParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
]

View File

@@ -106,19 +106,23 @@ export const AdminOrderCancelFulfillment = WithAdditionalData(
OrderCancelFulfillment
)
export const AdminOrderChanges = z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
status: z.union([z.string(), z.array(z.string())]).optional(),
change_type: z.union([z.string(), z.array(z.string())]).optional(),
created_at: createOperatorMap().optional(),
updated_at: createOperatorMap().optional(),
deleted_at: createOperatorMap().optional(),
})
export type AdminOrderChangesType = z.infer<typeof AdminOrderChanges>
export const AdminOrderChangesParams = createSelectParams().merge(
z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
status: z.union([z.string(), z.array(z.string())]).optional(),
change_type: z.union([z.string(), z.array(z.string())]).optional(),
created_at: createOperatorMap().optional(),
updated_at: createOperatorMap().optional(),
deleted_at: createOperatorMap().optional(),
})
)
export type AdminOrderChangesType = z.infer<typeof AdminOrderChangesParams>
export type AdminMarkOrderFulfillmentDeliveredType = z.infer<
typeof AdminMarkOrderFulfillmentDelivered
>
export const AdminMarkOrderFulfillmentDelivered = z.object({})
export type AdminTransferOrderType = z.infer<typeof AdminTransferOrder>
@@ -127,3 +131,8 @@ export const AdminTransferOrder = z.object({
description: z.string().optional(),
internal_note: z.string().optional(),
})
export type AdminCancelOrderTransferRequestType = z.infer<
typeof AdminCancelOrderTransferRequest
>
export const AdminCancelOrderTransferRequest = z.object({})