Feat: admin return reason list (#8482)
* feat: add missing endpoints to return reason sdk * add return reason list route * add return reason query hooks * fix update return reasons in order modules service * fix store/return-reasons middleware * add missing tests for /return-resasons/:id
This commit is contained in:
@@ -2,31 +2,38 @@ import {
|
||||
deleteReturnReasonsWorkflow,
|
||||
updateReturnReasonsWorkflow,
|
||||
} from "@medusajs/core-flows"
|
||||
import { UpdateOrderReturnReasonDTO } from "@medusajs/types"
|
||||
import {
|
||||
AdminReturnReasonResponse,
|
||||
UpdateOrderReturnReasonDTO,
|
||||
} from "@medusajs/types"
|
||||
import {
|
||||
ContainerRegistrationKeys,
|
||||
MedusaError,
|
||||
remoteQueryObjectFromString,
|
||||
} from "@medusajs/utils"
|
||||
import {
|
||||
AuthenticatedMedusaRequest,
|
||||
MedusaResponse,
|
||||
} from "../../../../types/routing"
|
||||
import { refetchEntity } from "../../../utils/refetch-entity"
|
||||
|
||||
export const GET = async (
|
||||
req: AuthenticatedMedusaRequest,
|
||||
res: MedusaResponse
|
||||
res: MedusaResponse<AdminReturnReasonResponse>
|
||||
) => {
|
||||
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
|
||||
const return_reason = await refetchEntity(
|
||||
"return_reason",
|
||||
req.params.id,
|
||||
req.scope,
|
||||
req.remoteQueryConfig.fields
|
||||
)
|
||||
|
||||
const variables = { id: req.params.id }
|
||||
|
||||
const queryObject = remoteQueryObjectFromString({
|
||||
entryPoint: "return_reason",
|
||||
variables,
|
||||
fields: req.remoteQueryConfig.fields,
|
||||
})
|
||||
|
||||
const [return_reason] = await remoteQuery(queryObject)
|
||||
if (!return_reason) {
|
||||
throw new MedusaError(
|
||||
MedusaError.Types.NOT_FOUND,
|
||||
`Return reason with id: ${req.params.id} was not found`
|
||||
)
|
||||
}
|
||||
|
||||
res.json({ return_reason })
|
||||
}
|
||||
|
||||
@@ -6,6 +6,7 @@ import {
|
||||
AdminCreateReturnReason,
|
||||
AdminGetReturnReasonsParams,
|
||||
AdminGetReturnReasonsReturnReasonParams,
|
||||
AdminUpdateReturnReason,
|
||||
} from "./validators"
|
||||
|
||||
export const adminReturnReasonRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
@@ -40,6 +41,17 @@ export const adminReturnReasonRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
),
|
||||
],
|
||||
},
|
||||
{
|
||||
method: ["POST"],
|
||||
matcher: "/admin/return-reasons/:id",
|
||||
middlewares: [
|
||||
validateAndTransformBody(AdminUpdateReturnReason),
|
||||
validateAndTransformQuery(
|
||||
AdminGetReturnReasonsReturnReasonParams,
|
||||
QueryConfig.retrieveTransformQueryConfig
|
||||
),
|
||||
],
|
||||
},
|
||||
{
|
||||
method: ["DELETE"],
|
||||
matcher: "/admin/return-reasons/:id",
|
||||
|
||||
@@ -8,13 +8,13 @@ import {
|
||||
AuthenticatedMedusaRequest,
|
||||
MedusaResponse,
|
||||
} from "../../../types/routing"
|
||||
import { AdminGetReturnReasonsParamsType } from "./validators"
|
||||
|
||||
export const GET = async (
|
||||
req: AuthenticatedMedusaRequest,
|
||||
req: AuthenticatedMedusaRequest<AdminGetReturnReasonsParamsType>,
|
||||
res: MedusaResponse
|
||||
) => {
|
||||
const remoteQuery = req.scope.resolve(ContainerRegistrationKeys.REMOTE_QUERY)
|
||||
|
||||
const queryObject = remoteQueryObjectFromString({
|
||||
entryPoint: "return_reason",
|
||||
variables: {
|
||||
|
||||
@@ -29,10 +29,11 @@ export type AdminGetReturnReasonsReturnReasonParamsType = z.infer<
|
||||
* Parameters used to filter and configure the pagination of the retrieved order.
|
||||
*/
|
||||
export const AdminGetReturnReasonsParams = createFindParams({
|
||||
limit: 15,
|
||||
offset: 0,
|
||||
limit: 20,
|
||||
}).merge(
|
||||
z.object({
|
||||
q: z.string().optional(),
|
||||
id: z.union([z.string(), z.array(z.string())]).optional(),
|
||||
value: z.union([z.string(), z.array(z.string())]).optional(),
|
||||
label: z.union([z.string(), z.array(z.string())]).optional(),
|
||||
@@ -43,8 +44,11 @@ export const AdminGetReturnReasonsParams = createFindParams({
|
||||
created_at: createOperatorMap().optional(),
|
||||
updated_at: createOperatorMap().optional(),
|
||||
deleted_at: createOperatorMap().optional(),
|
||||
$and: z.lazy(() => AdminGetReturnReasonsParams.array()).optional(),
|
||||
$or: z.lazy(() => AdminGetReturnReasonsParams.array()).optional(),
|
||||
})
|
||||
)
|
||||
|
||||
export type AdminGetReturnReasonsParamsType = z.infer<
|
||||
typeof AdminGetReturnReasonsParams
|
||||
>
|
||||
|
||||
@@ -6,7 +6,7 @@ import { StoreReturnReasonParams } from "./validators"
|
||||
export const storeReturnReasonRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
{
|
||||
method: ["GET"],
|
||||
matcher: "/admin/return-reasons",
|
||||
matcher: "/store/return-reasons",
|
||||
middlewares: [
|
||||
validateAndTransformQuery(
|
||||
StoreReturnReasonParams,
|
||||
@@ -16,7 +16,7 @@ export const storeReturnReasonRoutesMiddlewares: MiddlewareRoute[] = [
|
||||
},
|
||||
{
|
||||
method: ["GET"],
|
||||
matcher: "/admin/return-reasons/:id",
|
||||
matcher: "/store/return-reasons/:id",
|
||||
middlewares: [
|
||||
validateAndTransformQuery(
|
||||
StoreReturnReasonParams,
|
||||
|
||||
Reference in New Issue
Block a user