feat: update return request (#8302)

This commit is contained in:
Oli Juhl
2024-07-26 19:41:21 +02:00
committed by GitHub
parent a4eab3f37a
commit feabe0e6c0
13 changed files with 216 additions and 3 deletions
@@ -1,3 +1,4 @@
import { updateReturnWorkflow } from "@medusajs/core-flows"
import {
ContainerRegistrationKeys,
remoteQueryObjectFromString,
@@ -6,6 +7,7 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "../../../../types/routing"
import { AdminPostReturnsReturnReqSchemaType } from "../validators"
export const GET = async (
req: AuthenticatedMedusaRequest,
@@ -32,3 +34,34 @@ export const GET = async (
return: orderReturn,
})
}
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsReturnReqSchemaType>,
res: MedusaResponse
) => {
const { id } = req.params
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
const { result } = await updateReturnWorkflow(req.scope).run({
input: { return_id: id, ...req.validatedBody },
})
const queryObject = remoteQueryObjectFromString({
entryPoint: "return",
variables: {
id,
filters: {
...req.filterableFields,
},
},
fields: req.remoteQueryConfig.fields,
})
const [orderReturn] = await remoteQuery(queryObject)
res.json({
order_preview: result,
return: orderReturn,
})
}
@@ -5,13 +5,14 @@ import * as QueryConfig from "./query-config"
import {
AdminGetOrdersOrderParams,
AdminGetOrdersParams,
AdminPostCancelReturnReqSchema,
AdminPostReceiveReturnItemsReqSchema,
AdminPostReceiveReturnsReqSchema,
AdminPostCancelReturnReqSchema,
AdminPostReturnsConfirmRequestReqSchema,
AdminPostReturnsReqSchema,
AdminPostReturnsRequestItemsActionReqSchema,
AdminPostReturnsRequestItemsReqSchema,
AdminPostReturnsReturnReqSchema,
AdminPostReturnsShippingActionReqSchema,
AdminPostReturnsShippingReqSchema,
} from "./validators"
@@ -37,6 +38,17 @@ export const adminReturnRoutesMiddlewares: MiddlewareRoute[] = [
),
],
},
{
method: ["POST"],
matcher: "/admin/returns/:id",
middlewares: [
validateAndTransformBody(AdminPostReturnsReturnReqSchema),
validateAndTransformQuery(
AdminGetOrdersOrderParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["POST"],
matcher: "/admin/returns",
@@ -7,6 +7,8 @@ export const defaultAdminReturnFields = [
"location_id",
"order_version",
"status",
"metadata",
"no_notification",
"refund_amount",
"created_at",
"updated_at",
@@ -50,6 +50,15 @@ export type AdminPostReturnsReqSchemaType = z.infer<
typeof AdminPostReturnsReqSchema
>
export const AdminPostReturnsReturnReqSchema = z.object({
location_id: z.string().optional(),
no_notification: z.boolean().optional(),
metadata: z.record(z.unknown()).nullish(),
})
export type AdminPostReturnsReturnReqSchemaType = z.infer<
typeof AdminPostReturnsReturnReqSchema
>
export const AdminPostOrderExchangesReqSchema = z.object({
order_id: z.string(),
description: z.string().optional(),