chore(medusa,core-flows): update request return items and shipping (#8151)

This commit is contained in:
Carlos R. L. Rodrigues
2024-07-16 15:23:28 -03:00
committed by GitHub
parent f73ca97ecc
commit 23053afe95
30 changed files with 619 additions and 110 deletions
@@ -1,4 +1,7 @@
import { removeRequestItemReturnWorkflow } from "@medusajs/core-flows"
import {
removeRequestItemReturnWorkflow,
updateRequestItemReturnWorkflow,
} from "@medusajs/core-flows"
import {
ContainerRegistrationKeys,
remoteQueryObjectFromString,
@@ -7,6 +10,42 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "../../../../../../types/routing"
import { AdminPostReturnsRequestItemsActionReqSchemaType } from "../../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsRequestItemsActionReqSchemaType>,
res: MedusaResponse
) => {
const { id, action_id } = req.params
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
const { result } = await updateRequestItemReturnWorkflow(req.scope).run({
input: {
data: { ...req.validatedBody },
return_id: id,
action_id,
},
})
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,
})
}
export const DELETE = async (
req: AuthenticatedMedusaRequest,
@@ -1,4 +1,7 @@
import { removeReturnShippingMethodWorkflow } from "@medusajs/core-flows"
import {
removeReturnShippingMethodWorkflow,
updateReturnShippingMethodWorkflow,
} from "@medusajs/core-flows"
import {
ContainerRegistrationKeys,
remoteQueryObjectFromString,
@@ -7,6 +10,42 @@ import {
AuthenticatedMedusaRequest,
MedusaResponse,
} from "../../../../../../types/routing"
import { AdminPostReturnsShippingActionReqSchemaType } from "../../../validators"
export const POST = async (
req: AuthenticatedMedusaRequest<AdminPostReturnsShippingActionReqSchemaType>,
res: MedusaResponse
) => {
const { id, action_id } = req.params
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
const { result } = await updateReturnShippingMethodWorkflow(req.scope).run({
input: {
data: { ...req.validatedBody },
return_id: id,
action_id,
},
})
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,
})
}
export const DELETE = async (
req: AuthenticatedMedusaRequest,
@@ -7,7 +7,9 @@ import {
AdminGetOrdersParams,
AdminPostReturnsConfirmRequestReqSchema,
AdminPostReturnsReqSchema,
AdminPostReturnsRequestItemsActionReqSchema,
AdminPostReturnsRequestItemsReqSchema,
AdminPostReturnsShippingActionReqSchema,
AdminPostReturnsShippingReqSchema,
} from "./validators"
@@ -54,6 +56,17 @@ export const adminReturnRoutesMiddlewares: MiddlewareRoute[] = [
),
],
},
{
method: ["POST"],
matcher: "/admin/returns/:id/request-items/:action_id",
middlewares: [
validateAndTransformBody(AdminPostReturnsRequestItemsActionReqSchema),
validateAndTransformQuery(
AdminGetOrdersOrderParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["DELETE"],
matcher: "/admin/returns/:id/request-items/:action_id",
@@ -75,6 +88,17 @@ export const adminReturnRoutesMiddlewares: MiddlewareRoute[] = [
),
],
},
{
method: ["POST"],
matcher: "/admin/returns/:id/shipping-method/:action_id",
middlewares: [
validateAndTransformBody(AdminPostReturnsShippingActionReqSchema),
validateAndTransformQuery(
AdminGetOrdersOrderParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
{
method: ["DELETE"],
matcher: "/admin/returns/:id/shipping-method/:action_id",
@@ -108,6 +108,16 @@ export type AdminPostReturnsShippingReqSchemaType = z.infer<
typeof AdminPostReturnsShippingReqSchema
>
export const AdminPostReturnsShippingActionReqSchema = z.object({
custom_price: z.number().optional(),
internal_note: z.string().nullish().optional(),
metadata: z.record(z.unknown()).nullish().optional(),
})
export type AdminPostReturnsShippingActionReqSchemaType = z.infer<
typeof AdminPostReturnsShippingActionReqSchema
>
export const AdminPostReturnsRequestItemsReqSchema = z.object({
items: z.array(
z.object({
@@ -124,6 +134,15 @@ export type AdminPostReturnsRequestItemsReqSchemaType = z.infer<
typeof AdminPostReturnsRequestItemsReqSchema
>
export const AdminPostReturnsRequestItemsActionReqSchema = z.object({
quantity: z.number().optional(),
internal_note: z.string().nullish().optional(),
})
export type AdminPostReturnsRequestItemsActionReqSchemaType = z.infer<
typeof AdminPostReturnsRequestItemsActionReqSchema
>
export const AdminPostReturnsConfirmRequestReqSchema = z.object({
no_notification: z.boolean().optional(),
})