Feat(order): return reason and transaction methods (#7303)
This commit is contained in:
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(),
|
||||
})
|
||||
Reference in new issue
Block a user