Feat(order): return reason and transaction methods (#7303)

This commit is contained in:
Carlos R. L. Rodrigues authored and GitHub committed 2024-05-13 16:15:25 +00:00
1 parent 8958214350
commit 6c94d0205c
23 files changed
+1036 -6

No files matched your search

@@ -0,0 +1,19 @@
import { MiddlewareRoute } from "../../../loaders/helpers/routing/types"
import { validateAndTransformBody } from "../../utils/validate-body"
import { validateAndTransformQuery } from "../../utils/validate-query"
import * as QueryConfig from "./query-config"
import { ReturnsParams, StorePostReturnsReqSchema } from "./validators"
export const storeRegionRoutesMiddlewares: MiddlewareRoute[] = [
{
method: ["POST"],
matcher: "/store/returns/create-return",
middlewares: [
validateAndTransformBody(StorePostReturnsReqSchema),
validateAndTransformQuery(
ReturnsParams,
QueryConfig.retrieveTransformQueryConfig
),
],
},
]
@@ -0,0 +1,13 @@
export const defaultReturnFields = [
"id",
"order_id",
"created_at",
"updated_at",
"deleted_at",
"metadata",
]
export const retrieveTransformQueryConfig = {
defaults: defaultReturnFields,
isList: false,
}
@@ -0,0 +1,10 @@
import { CreateOrderReturnDTO } from "@medusajs/types"
import { MedusaRequest, MedusaResponse } from "../../../types/routing"
export const POST = async (req: MedusaRequest, res: MedusaResponse) => {
const input = [req.validatedBody as CreateOrderReturnDTO]
// TODO: create return workflow
res.status(200).json({ return: {} })
}
@@ -0,0 +1,32 @@
import { z } from "zod"
import { createFindParams, createSelectParams } from "../../utils/validators"
export type ReturnParamsType = z.infer<typeof ReturnParams>
export const ReturnParams = createSelectParams()
export type ReturnsParamsType = z.infer<typeof ReturnsParams>
export const ReturnsParams = createFindParams().merge(
z.object({
id: z.union([z.string(), z.array(z.string())]).optional(),
order_id: z.union([z.string(), z.array(z.string())]).optional(),
$and: z.lazy(() => ReturnsParams.array()).optional(),
$or: z.lazy(() => ReturnsParams.array()).optional(),
})
)
const ReturnShippingSchema = z.object({
option_id: z.string(),
})
const ItemSchema = z.object({
item_id: z.string(),
quantity: z.number().min(1),
reason_id: z.string().optional(),
note: z.string().optional(),
})
export const StorePostReturnsReqSchema = z.object({
order_id: z.string(),
items: z.array(ItemSchema),
return_shipping: ReturnShippingSchema.optional(),
})